Sear the Beef: Heat oil in a heavy-bottomed pot or Dutch oven over medium-high heat. Add beef cubes in batches and sear until browned on all sides. Remove and set aside.
Sauté Aromatics: In the same pot, add more oil if needed. Add onions and cook until golden brown (about 6–8 minutes). Add garlic, ginger, and green chilies. Sauté until fragrant.
Add Spices: Lower the heat slightly. Add cumin, coriander, turmeric, paprika, cinnamon, cloves, chili powder, and bay leaf. Stir for 30 seconds to release aromas.
Add Tomatoes: Stir in chopped tomatoes and cook until they soften and release oil (5–7 minutes).
Return Beef to Pot: Add the seared beef back in, coating it well in the spice mixture.
Pour in Liquids: Add coconut milk and beef broth. Stir to combine. Bring to a gentle simmer.
Simmer Slowly: Cover and cook on low heat for 1½ hours, stirring occasionally, until beef is tender and sauce thickens. If using a pressure cooker, cook for 25–30 minutes on high pressure.
Finish with Lemon Juice: Stir in lemon or lime juice before serving to balance the richness.
Garnish: Sprinkle with fresh cilantro or parsley before serving.