Place a large, heavy-based pot or deep skillet over high heat. Add the ghee or canola oil and allow it to get hot before adding the diced beef. Sear the meat in small batches for 3–4 minutes until each piece is deeply browned on all sides. Avoid overcrowding the pan to prevent steaming instead of searing. Once browned, transfer the beef to a separate bowl and set aside.
Into the same pan, add the whole cumin seeds and bay leaves. Toast them for about 1½ minutes until they release their aroma and start to pop gently. Add the sliced onions and sauté for 4 minutes, stirring frequently, until golden and translucent. Next, stir in the grated garlic and ginger, cooking for another minute to draw out their flavors.
Sprinkle in the ground spices—cumin, coriander, garam masala, turmeric, and Kashmiri chili powder. Stir well to coat the onions and toast the spices for about 1 minute to deepen their fragrance. Add the curry leaves (if using), followed by the diced tomatoes and a generous pinch of salt and pepper. Stir to combine, then bring the mixture to a gentle boil.
Return the seared beef and any accumulated juices to the pan. Pour in enough hot water to just cover the contents. Once it reaches a boil, lower the heat to medium-low and let it simmer gently for 1 hour and 15 minutes. Stir occasionally to prevent sticking. The curry is ready when the beef is melt-in-your-mouth tender and the sauce has reduced to a rich, thick consistency. Remove from heat and let it rest briefly before serving.