01 - Heat vegetable oil in a large, heavy-bottomed pot over medium heat. Add cinnamon stick, cloves, cardamom pods, and bay leaf. Fry for 30 seconds until fragrant.
02 - Add finely chopped onions and sauté for about 8 minutes until they turn golden brown.
03 - Stir in minced garlic, grated ginger, and sliced green chilies. Cook for 2 minutes to release their aroma.
04 - Add chopped tomatoes and cook until softened and broken down, about 5 minutes.
05 - Sprinkle curry powder, ground cumin, coriander, chili powder, turmeric, and ground black pepper over the mixture. Stir well and cook for 2 minutes to toast spices.
06 - Add beef cubes, stirring thoroughly to coat with spices. Cook for 5 minutes until beef is lightly browned.
07 - Pour in beef stock and bring to a simmer. Cover and cook over low heat for 1 hour, stirring occasionally.
08 - Stir in coconut milk, season with salt, and simmer uncovered for an additional 30 minutes until beef is tender and sauce thickens.
09 - Discard cinnamon stick, cloves, cardamom pods, and bay leaf from the pot.
10 - Sprinkle chopped cilantro on top and serve hot alongside basmati rice or naan bread.