Heat the ghee over medium to medium-high heat in a 5-quart pot. When it starts to ripple, sear the meat on all sides, about 5 minutes. Stir in the onion, garlic, and ginger and cook until the onion starts to soften, about 3 to 5 minutes, stirring frequently. Stir in the cardamom, bay leaves, cloves, paprika, salt, coriander, cumin, cinnamon, black pepper, and cayenne, and fry until the spices are fragrant, about 30 seconds, stirring constantly.
Use a wooden spoon to push the beef and onions to one side of the pot. Add 2 tablespoons of yogurt to the empty area, stirring continuously until it blends in; continue this way until all the yogurt is added.
Add the beef stock, bring the mixture up to a boil, and then put a lid on it, turn it down to a simmer, and let it cook until the meat is tender and the curry is thickened, about 1 hour, stirring occasionally.
Remove the cloves and bay leaves, and taste and season with additional salt and black pepper.
Garnish with cilantro and red onion. If desired, serve with Salad Shirazi and basmati rice or cauliflower rice.
