01 - Heat vegetable oil in a large heavy-based pot over medium heat. Add cumin seeds and mustard seeds, fry until they begin to splutter and release their aroma.
02 - Add chopped onions to the pot and sauté until golden brown, approximately 8 minutes. Stir frequently to ensure even coloring.
03 - Stir in minced garlic, grated ginger, and sliced green chilies. Cook for 2 minutes until fragrant, being careful not to burn the garlic.
04 - Add ground coriander, ground cumin, chili powder, turmeric, cinnamon stick, whole cloves, and crushed cardamom pods. Stir constantly for 1 minute to toast the spices.
05 - Add beef cubes to the pot. Brown on all sides for 6 to 8 minutes, developing a deep caramelized color on the meat.
06 - Mix in chopped tomatoes and season with salt and pepper. Cook until tomatoes soften completely and begin to break down, approximately 5 minutes.
07 - Pour in beef stock and coconut milk if using. Bring to a boil, then reduce heat to low, cover, and simmer for 1.5 hours until beef is very tender. Stir occasionally and add more liquid if the curry becomes too dry.
08 - Uncover the pot, stir in garam masala, and cook uncovered for 10 minutes to allow the sauce to reduce and thicken properly.
09 - Taste the curry and adjust salt and pepper as needed. The flavors should be well-balanced with a pleasant warmth from the spices.
10 - Sprinkle fresh cilantro leaves over the curry. Serve hot accompanied by basmati rice or warm naan bread.