In a very hot pan, brown the beef on all sides. Set aside.
Add 2 tablespoons of ghee to the same pan on medium heat, add in 2 cups onions, thinly sliced and keep sauteing for 5-10 minutes until brown.
Once the onions are brown, add 1/4 cup chopped ginger, 1/4 cup chopped garlic, 1 teaspoon chopped green chilli
Saute for 10 seconds, then add 1/4 cup melon seeds, toasted and made into a paste
1/4 cup almonds, toasted and made into a paste, and 5-10 curry leaves.
Add in all the dry powdered spices and saute for another 30 seconds.
Add 2 cups of roughly chopped tomatoes, saute them for a minute or two. Add 1/4 cup chopped coriander leaves and 1 teaspoon of sugar or honey and saute for a further minute.
Add 1/4 cup of water and 1 teaspoon of salt. Saute for another minute until the tomatoes are softened.
Turn off the heat and allow the pot to cool down. Transfer the contents of the pot into a blender and blend until smooth.
In a large pot or wok on medium heat, add 1 tablespoon of ghee, 2 bay leaves, toasted
2 sticks cinnamon, toasted, 2 pods black cardamom, toasted, add 1/4 cup finely chopped tomatoes, and 1/4 cup finely chopped onions. Saute for a couple of minutes until the tomatoes and onions are soft.
Add the beef back into the pot with a pinch of salt, saute well for 2 minutes until the tomatoes have coated the beef. Add the sauce mix from the blender, add 1/2 cup of stock to rinse out the blender jar and pour back into the pot with the beef.
Turn the heat to the lowest setting, mix the curry for 1-2 minutes. Cover with a lid and cook for 45 minutes to 1 hour, until the beef is fall-apart tender.
Add 1/2 cup plain yoghurt and 1/2 cup crispy fried onions, and stir for 5 minutes until the yoghurt is well incorporated. Serve with a squeeze of lime on top.