01 - Warm the vegetable oil in a large heavy-bottomed pot over medium heat.
02 - Add the onions and cook until softened and golden, approximately 8 minutes.
03 - Stir in garlic and ginger; cook for 1 minute until fragrant.
04 - Incorporate curry powder, cumin, coriander, turmeric, chili powder, cinnamon stick, cloves, and bay leaves. Stir continuously for 1 to 2 minutes to release the aromas.
05 - Add beef cubes and sear on all sides until browned, about 5 minutes.
06 - Mix in diced tomatoes and cook until they soften, about 4 minutes.
07 - Pour in coconut milk and beef stock, scraping browned bits from the bottom to combine evenly.
08 - Bring mixture to a gentle simmer, cover, and cook on low heat for 60 minutes, stirring occasionally.
09 - Add potatoes if using, season with salt and pepper, then simmer uncovered for 30 to 40 minutes until beef is tender and sauce thickens.
10 - Discard bay leaves, cinnamon stick, and cloves before serving.
11 - Sprinkle with chopped cilantro and serve hot alongside lime wedges.