Worked out from this recipe's ingredients. If you're cooking for an allergy, always read the full ingredient list.
One reliable blueprint for restaurant-style biryani at home: aged basmati boiled to exactly 70 percent, a yogurt-and-spice marinated filling, a mountain of deep-fried onions, and a sealed dum finish that steams everything into separate, perfumed grains. Learn it once with bone-in chicken, then swap in lamb, shrimp, paneer or cauliflower using the timing chart in the tips.
Ingredients
Marinated filling (chicken version)
2 1/2 lb bone-in chicken thighs and drumsticks, skin removed
1 cup whole-milk plain yogurt (not Greek)
2 tbsp ginger-garlic paste
2 tsp Kashmiri chili powder
1 tsp ground turmeric
1 tbsp biryani masala or garam masala
1 tsp ground coriander
2 tsp kosher salt
2 tbsp lemon juice
2 green chiles, slit lengthwise
1/4 cup chopped fresh mint
1/4 cup chopped fresh cilantro
3 tbsp ghee
Birista (fried onions)
3 large yellow onions, halved and sliced paper-thin
1 cup neutral oil, for frying
1/2 tsp kosher salt
Par-cooked basmati
3 cups aged basmati rice
4 quarts water
3 tbsp kosher salt
1 tbsp neutral oil
2 tbsp lemon juice
4 green cardamom pods, lightly crushed
4 whole cloves
1 piece cinnamon stick (2 inches)
2 bay leaves
1 tsp cumin seeds
1 star anise (optional)
Layering and dum finish
1/2 tsp saffron threads
1/3 cup warm whole milk
3 tbsp ghee, melted
1/4 cup chopped fresh mint
1/4 cup chopped fresh cilantro
1 tsp kewra water or rose water (optional)
1 1/2 cups all-purpose flour, for the dough seal (optional)
Instructions
Marinate the filling: In a large bowl whisk the yogurt, ginger-garlic paste, Kashmiri chili, turmeric, biryani masala, coriander, 2 tsp salt and lemon juice until smooth. Fold in the green chiles, mint and cilantro, then add the chicken and turn to coat every piece. Cover and refrigerate at least 4 hours, ideally overnight (minimum 1 hour if pressed). Pull it out 30 minutes before cooking.
Fry the birista: Heat the 1 cup oil in a 10-inch skillet over medium heat to about 325°F. Add the sliced onions in two batches with the 1/2 tsp salt and fry, stirring often, 12 to 18 minutes per batch, until they are deep amber and no longer sizzling hard. Pull them out with a slotted spoon while a shade lighter than you want — they darken as they drain — and spread on a paper-towel-lined plate. They should shatter when cool. Reserve 2 tbsp of the frying oil.
Bloom the saffron: Crush the saffron between your fingers into the warm milk and set aside to steep for at least 20 minutes; it should turn deep orange.
Cook the filling: In a 5- to 6-quart Dutch oven, heat the 3 tbsp ghee plus the reserved 2 tbsp onion oil over medium-high. Add the chicken with all its marinade, spread in an even layer, and cook uncovered 8 minutes, stirring once, until the yogurt tightens and separates. Reduce to medium, stir in half of the fried onions, cover, and simmer 15 minutes, stirring twice, until the chicken registers 170°F at the bone and the gravy is thick enough to coat a spoon with no watery pool. If it looks loose, uncover and boil hard 3 to 4 minutes. Taste and salt aggressively — it seasons the rice above it. Level the filling in the pot and turn off the heat.
Par-cook the rice: While the filling simmers, rinse the basmati in 4 or 5 changes of cool water until the water runs nearly clear, then soak 20 minutes and drain. Bring the 4 quarts water to a rolling boil with 3 tbsp salt, the oil, lemon juice and all whole spices. Add the drained rice and boil 4 to 5 minutes, uncovered, starting your timer the moment it returns to a boil.
Test doneness precisely: The rice is ready at about 70 percent cooked — a grain pressed between your thumbnail and finger should break into 2 or 3 pieces with a firm white core, and it should still taste chalky at the center. Drain immediately in a large colander and shake gently; do not rinse.
Layer: Spoon half the drained rice over the filling in the Dutch oven in loose forkfuls — never pack it. Scatter half the remaining fried onions, half the mint and cilantro, and drizzle 1 tbsp melted ghee. Add the rest of the rice, then top with the remaining onions, herbs, the saffron milk drizzled in stripes (leave some rice white for contrast), the remaining 2 tbsp ghee, and the kewra water if using.
Seal for dum: If using a dough seal, mix the flour with about 3/4 cup water into a stiff rope and press it around the pot rim, then clamp on the lid. Otherwise cover the pot tightly with two layers of foil crimped down the sides and set the lid on top.
Dum finish: Set the sealed pot over high heat for 4 minutes to build steam (listen for a hiss), then transfer to a 325°F oven for 30 minutes. Alternatively, keep it on the stove over the lowest flame on a heat diffuser or a dry cast-iron skillet for 25 minutes.
Rest and serve: Take the pot off the heat and rest, still sealed, 15 minutes — this is when the grains finish and firm up. Break the seal, slide a wide spoon down the side to the bottom, and lift up wedges from the pot so each portion gets crusty bottom filling, saffron rice and white rice. Serve with cucumber-mint raita and lemon wedges.
Chef's tips
Protein swaps, same blueprint: Bone-in lamb or goat — marinate overnight and simmer covered with 1/2 cup water 50 to 60 minutes (or 20 minutes at high pressure) before layering. Shrimp — marinate 20 minutes only, sear 2 minutes, then layer and cut the dum to 20 minutes. Paneer, potato, cauliflower or mushroom — marinate 30 minutes, pan-sear the pieces in ghee until browned, stir the marinade in separately and reduce it 5 minutes so it doesn't water out the rice.
Aged basmati is not optional if you want long separate grains; young rice and non-basmati long grain will turn pasty at the 4-minute par-boil. Look for bags labeled aged or extra-long.
The salted boiling water is your only chance to season the rice, so it should taste like seawater. Most under-seasoned homemade biryani fails right here.
Rushing the onions is the other classic failure. Underfried birista tastes raw and steamy; go until they are genuinely amber and crisp, and fry them a day ahead if you want to break the work up.
No Dutch oven? Layer everything in a deep 9x13 baking dish, cover tightly with foil, and bake at 350°F for 35 minutes — you lose some bottom crust but the steam works the same.
Leftovers reheat best sprinkled with 1 tbsp water per portion, covered, at 300°F for 15 minutes; the microwave dries the grains out.
Nutrition (per serving, estimated)
850calories
42gprotein
88gcarbs
39gfat
Estimates only — values vary with brands and portions.
Made with Sprig
Master Layered Dum Biryani (Works With Any Protein) was created in Sprig — the AI chef that turns any craving into a complete recipe, plans your week, and shops with one smart list.