01 - Heat vegetable oil in a large heavy-bottomed pot over medium heat. Add cumin seeds, bay leaves, whole cloves, and cinnamon stick. Sauté for 1 minute until fragrant.
02 - Add chopped onions to the pot. Cook until golden brown, about 8 minutes, stirring frequently to ensure even coloring.
03 - Stir in minced garlic, grated ginger, and sliced green chilies. Cook for 2 minutes until aromatic and fragrant.
04 - Add ground coriander, turmeric, chili powder, garam masala, ground cumin, paprika, salt, and black pepper. Toast spices for 1 minute to release their essential oils.
05 - Add beef cubes to the pot and brown on all sides, about 5 minutes. This develops a deep, rich flavor base for the curry.
06 - Stir in chopped tomatoes and cook for 5 minutes, allowing them to soften and break down into the sauce.
07 - Pour in stock and water. Bring to a boil, then reduce heat to low. Cover and simmer for 1 hour, stirring occasionally to prevent sticking.
08 - Remove lid and stir in yogurt. Simmer uncovered for another 20-30 minutes, until beef is tender and sauce has thickened to desired consistency.
09 - Taste and adjust seasoning if needed. Remove whole spices before serving. Garnish with fresh cilantro and serve hot with basmati rice or naan alongside lemon wedges.