In a pan, dry roast fennel seeds, cumin seeds, coriander seeds, black peppercorns, cloves, cardamom pods, bay leaves, cinnamon stick, and star anise until fragrant.
Grind the roasted spices into a fine powder.
Mix the ground spices with red chili powder, turmeric powder, and garam masala. Set aside.
Making the Nihari:
Heat oil or ghee in a large, heavy-bottomed pot.
Add sliced onions and cook until golden brown.
Add ginger-garlic paste and cook for another 2 minutes.
Add the meat and sear on all sides until browned.
Stir in the prepared Nihari masala and cook for a few minutes until the spices are well mixed.
Add yogurt and cook until the oil starts to separate from the mixture.
Pour in water or beef broth. Bring to a boil, then reduce heat to low, cover, and let it simmer for 4-6 hours until the meat is tender and falling off the bone.
In a separate small bowl, mix wheat flour with a little water to make a smooth paste.
Slowly add the wheat flour paste to the pot, stirring continuously to avoid lumps. Cook for an additional 30 minutes, allowing the gravy to thicken.
Serving:
Garnish with chopped coriander and mint leaves, julienned ginger, lemon wedges, and sliced green chilies.
Serve hot with naan, paratha, or steamed rice. Enjoy your delicious homemade Nihari!