Marinate: Toss the shrimp with ginger-garlic paste, turmeric, red chili powder, lemon juice, and salt. Set aside for 20 minutes.
Prep the Grains: Wash the Basmati rice until the water runs clear. Soak in cold water for 30 minutes, then drain.
Par-boil Rice: Bring a large pot of water to a boil with whole spices and salt. Add rice and cook until 70% done (firm to the bite). Drain immediately and set aside.
Sauté Aromatics: Heat ghee in a heavy-bottomed Dutch oven. Add whole spices, then sauté ginger-garlic paste and chopped tomatoes until the tomatoes soften and oil separates.
Build the Masala: Stir in the biryani masala blend and whisked yogurt. Cook on low heat for 2 minutes.
Quick-Sear Shrimp: Add the marinated shrimp to the masala. Cook for only 2–3 minutes to prevent them from becoming rubbery.
Layering: Level the shrimp masala at the bottom of the pot. Layer half the par-boiled rice on top, followed by a sprinkle of fried onions, mint, and cilantro.
Final Layer: Add the remaining rice. Drizzle the saffron-infused milk and a tablespoon of ghee over the surface.
The Dum (Steam): Seal the pot with a tight lid (use foil for an airtight seal). Cook on the lowest possible heat for 10–12 minutes.
Rest & Fluff: Turn off the heat and let the pot sit undisturbed for 5 minutes. Gently fluff with a fork, ensuring the shrimp and masala from the bottom are marbled through the rice.