Rinse & Soak Rice: Rinse basmati until water runs clear; soak 30 minutes, then drain.
Parboil Rice: Boil 4 cups water with 4 cardamom pods, 4 cloves, 1 cinnamon stick, 1 bay leaf, and 1 tsp salt. Add rice; cook until 70% done. Drain and set aside.
Temper Spices: In a heavy pot over medium heat, warm 2 Tbsp ghee. Add cumin, fennel, black & green cardamoms, cloves, cinnamon sticks, star anise, and bay leaf. Sauté until fragrant.
Cook Onions & Paste: Add sliced onion; cook till translucent and lightly browned. Stir in ginger-garlic paste and sauté until raw aroma disappears.
Sauté Mushrooms: Add mushrooms, ½ tsp turmeric, and 1 tsp salt. Cook until moisture evaporates and mushrooms brown (5–7 min).
Spice & Yogurt: Stir in yogurt, coriander, chili powder, garam masala, and nutmeg. Cook 2–3 minutes until masala coats mushrooms. Fold in cilantro, mint, green chilies, and rose/kewra water; remove from heat.
Layer Biriyani: Spread half the mushroom masala in pot. Top with half the rice, half the saffron milk, and half the ghee. Repeat layers with remaining rice, saffron milk, and ghee.
Seal & Dum Cook: Wipe pot rim clean. Seal lid with a damp cloth. Cook on lowest heat 25–30 minutes. Let rest 10 minutes off heat.
Garnish & Serve: Fluff gently, top with fried onions and nuts, and serve hot with raita or salad.