Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 cups (380 g) aged basmati rice
- 1/2 tsp saffron threads + 1/3 cup warm milk (120°F/50°C)
- 2 large onions (500 g), thinly sliced
- 1/3 cup neutral oil + 2 tbsp ghee (plus 2 tbsp ghee for layering)
- 1/2 cup cashews, 1/3 cup golden raisins
- Whole spices: 1 bay leaf, 6 green cardamom, 6 cloves, 1.5-inch cinnamon, 1 tsp cumin seeds
- 2 tbsp ginger-garlic paste; 2 medium tomatoes, diced
- 1/2 cup plain yogurt
- Ground spices: 2 tsp coriander, 1 tsp cumin, 1 tsp Kashmiri chili, 1/2 tsp turmeric, 1.5 tsp garam masala
- 4 cups mixed veg (carrot, potato, cauliflower, green beans, peas)
- 1 cup herbs (1/2 cup mint, 1/2 cup cilantro)
- For rice water: 8 cups water + 2 tbsp kosher salt
- Raita: 1.5 cups yogurt, 1 cup grated cucumber, 1/2 tsp roasted cumin, 1/2 tsp salt, 2 tbsp chopped herbs
Do This
- 1. Rinse rice until mostly clear; soak 20 minutes. Bloom saffron in 120°F milk for 10 minutes.
- 2. Fry onions in oil + 2 tbsp ghee over medium heat 18–22 minutes until deep golden; reserve half. Toast cashews 2 minutes; plump raisins 30 seconds.
- 3. Boil rice in 8 cups water with 2 tbsp salt and whole spices 5–6 minutes (70% cooked); drain.
- 4. In 2 tbsp onion oil, cook ginger-garlic 1 minute; add tomatoes 5 minutes. Stir in ground spices + 1/2 cup yogurt; add veg and 1/4 cup water; cover 6–8 minutes.
- 5. Layer: half veg, half rice, herbs, onions, nuts, saffron milk, 1 tbsp ghee; repeat.
- 6. Dum: cover tightly and steam on low 20 minutes (or oven 350°F/180°C for 20 minutes). Rest 10 minutes.
- 7. Mix raita ingredients; serve alongside fluffy biryani.
Why You’ll Love This Recipe
- Each grain of basmati stays long and fluffy, scented with saffron and warm spices.
- Comforting contrast: crisp golden onions, sweet raisins, buttery cashews, and tender vegetables.
- Restaurant-worthy technique explained for home cooks with clear times and temperatures.
- Make-ahead friendly and naturally crowd-pleasing with a cool cucumber raita.
Grocery List
- Produce: 2 large onions, 2 medium tomatoes, 1 lemon (optional), 1 seedless cucumber, fresh cilantro, fresh mint, mixed vegetables (carrots, potatoes, cauliflower, green beans), frozen peas
- Dairy: Whole milk, plain yogurt, ghee
- Pantry: Aged basmati rice, neutral oil, saffron threads, cashews, golden raisins, bay leaf, green cardamom, cloves, cinnamon stick, cumin seeds, ground coriander, ground cumin, Kashmiri chili powder, turmeric, garam masala, kosher salt
Full Ingredients
Rice
- 2 cups (380 g) aged basmati rice, rinsed and soaked 20 minutes
- 8 cups water
- 2 tbsp kosher salt
- 1 bay leaf
- 6 green cardamom pods, lightly crushed
- 6 whole cloves
- 1.5-inch cinnamon stick
- 1 tsp cumin seeds (or shahi jeera)
- 1 tsp neutral oil (optional, to reduce foaming)
Saffron & Herbs
- 1/2 tsp saffron threads (about 40 threads)
- 1/3 cup warm whole milk (120°F/50°C)
- 1 tsp rose water or kewra water (optional)
- 1/2 cup loosely packed mint leaves, torn
- 1/2 cup chopped cilantro
- 2 tbsp ghee, for dotting during layering
Golden Onions, Cashews & Raisins
- 2 large yellow onions (about 500 g), thinly sliced
- 1/3 cup neutral oil (canola, avocado, or sunflower)
- 2 tbsp ghee
- 1/2 cup raw cashews
- 1/3 cup golden raisins
Vegetable Masala
- 2 tbsp reserved onion oil/ghee (from frying the onions)
- 2 tbsp ginger-garlic paste
- 2 medium tomatoes (about 240 g), diced
- 1/2 cup plain whole-milk yogurt, whisked
- 1 tsp kosher salt, plus more to taste
- 2 tsp ground coriander
- 1 tsp ground cumin
- 1 tsp Kashmiri red chili powder (or 1/2 tsp regular chili powder)
- 1/2 tsp turmeric
- 1.5 tsp garam masala
- 4 cups mixed vegetables: 1 cup peeled diced carrots (150 g), 1 cup peeled diced potatoes (200 g), 1.5 cups small cauliflower florets (180 g), 1/2 cup chopped green beans (75 g), 1/2 cup frozen peas (75 g)
- 1/4 cup water (for steaming veg)
- 1 tbsp lemon juice (optional, to brighten)
Cucumber Raita
- 1.5 cups plain yogurt (regular or Greek)
- 1 cup grated seedless cucumber, excess liquid squeezed out
- 2 tbsp finely chopped cilantro
- 1 tbsp finely chopped mint
- 1/2 tsp roasted ground cumin
- 1/2 tsp kosher salt
- Pinch of sugar
- 2 tbsp cold water (to thin as needed)

Step-by-Step Instructions
Step 1: Rinse, soak rice, and bloom saffron
Place the basmati rice in a bowl, cover with cool water, and swish gently. Drain and repeat until the water is mostly clear (3–4 changes). Cover with fresh water and soak for 20 minutes, then drain well.
Warm the milk to 120°F/50°C (microwave 15–20 seconds or gently on the stovetop). Add saffron and let bloom for at least 10 minutes. Stir in rose or kewra water if using.
Step 2: Fry onions; toast cashews and plump raisins
In a large heavy pot or Dutch oven (5–6 quart), heat 1/3 cup neutral oil and 2 tbsp ghee over medium heat. Add the sliced onions and a small pinch of salt. Cook, stirring every minute, until deep golden with crisp edges, 18–22 minutes. If you have a thermometer, aim to keep the oil around 320–340°F for steady browning. Transfer onions to a paper towel–lined plate. Reserve about half for layering; leave the rest for the masala.
Add cashews to the pot and toast until golden, 2–3 minutes. Add raisins and cook 30–45 seconds until plump. Scoop both out and set aside. Leave 2 tbsp of the flavorful onion oil in the pot for the next step; save the rest for layering or another use.
Step 3: Parboil the rice with whole spices
Bring 8 cups water to a rolling boil in a large pot. Add 2 tbsp kosher salt, bay leaf, cardamom, cloves, cinnamon, cumin seeds, and 1 tsp oil. Add the drained rice and boil 5–6 minutes until 70% cooked—the grain should be long and flexible with a slightly chalky center. Drain immediately in a colander and spread on a tray for 2–3 minutes to stop cooking. Pick out the whole spices if you prefer.
Step 4: Cook the spiced vegetable masala
Return the Dutch oven to medium heat with 2 tbsp reserved onion oil. Add ginger-garlic paste; cook 60–90 seconds until aromatic. Add tomatoes and cook until saucy and reduced, 4–5 minutes.
Lower heat to medium-low. Stir in coriander, cumin, Kashmiri chili, turmeric, garam masala, and 1 tsp salt; cook 30 seconds. Whisk yogurt to loosen, then stir it in gradually so it doesn’t curdle. Add carrots, potatoes, cauliflower, green beans, peas, and 1/4 cup water. Cover and cook until the vegetables are just tender but not fully soft, 6–8 minutes. Stir in half of the fried onions (reserve the rest for topping) and the lemon juice, if using. Turn off the heat.
Step 5: Layer the biryani
Brush the bottom of a clean heavy pot or the same Dutch oven with 1 tsp ghee. Spread half the vegetable masala in an even layer. Top with half the parboiled rice. Scatter half the mint and cilantro, half the remaining fried onions, half the cashews and raisins. Drizzle with half the saffron milk and dot with 1 tbsp ghee. Repeat all layers with the remaining ingredients.
Step 6: Dum steam (stovetop or oven)
Cover the pot tightly with a sheet of foil or parchment and a heavy lid. For stovetop dum: set over the lowest heat (use a heat diffuser or place the pot on a preheated griddle to prevent scorching) for 20 minutes. For oven dum: preheat to 350°F (180°C) and bake covered for 20 minutes. Remove from heat and let rest, covered, for 10 minutes so the steam redistributes.
Step 7: Make the cucumber raita
While the biryani steams, whisk yogurt with roasted cumin, salt, and a pinch of sugar. Fold in the grated, squeezed cucumber, cilantro, and mint. Thin with 1–2 tbsp cold water to your desired consistency. Chill until serving.
Step 8: Fluff, garnish, and serve
Gently fluff the biryani with a fork, lifting from the sides to keep the grains intact. Garnish with any extra herbs. Serve hot with the cool cucumber raita on the side.
Pro Tips
- Soak aged basmati for at least 20 minutes for extra-long, separate grains.
- Salt the rice water generously (2 tbsp for 8 cups water); most drains away, but it seasons the rice perfectly.
- For evenly golden onions, don’t crowd the pot and stir often; a steady 320–340°F frying temperature prevents burning.
- Use a heavy, tight-lidded pot or add a layer of foil to trap steam for perfect dum.
- Let the biryani rest covered for 10 minutes after steaming; it finishes cooking gently and stays fluffy.
Variations
- Paneer Veg Biryani: Add 8 oz (225 g) paneer cubes to the masala in Step 4 for extra protein and richness.
- Vegan: Use all oil instead of ghee; swap dairy yogurt and milk with unsweetened plant-based yogurt and warm plant milk (or warm water) for blooming saffron.
- Oven-Only Method: Assemble in an oven-safe Dutch oven, seal, and bake at 350°F (180°C) for 25 minutes. Rest 10 minutes before fluffing.
Storage & Make-Ahead
Fried onions and toasted nuts can be prepared up to 3 days ahead and stored airtight (line onions with paper towel). The vegetable masala can be made 2 days ahead; rewarm before layering. Parboil rice just before assembling. Assembled, uncooked biryani can be refrigerated up to 24 hours; steam 25–30 minutes at 350°F (180°C) until piping hot in the center (165°F/74°C). Leftovers keep 4 days in the fridge or 3 months frozen. Reheat gently with a splash of water: covered on low heat 8–10 minutes, or in a 300°F (150°C) oven for 15–20 minutes, or microwave covered for 2–3 minutes, stirring once.
Nutrition (per serving)
Approximate: 540 calories; 18 g fat; 85 g carbohydrates; 10 g protein; 4 g fiber; 620 mg sodium. Includes raita and typical toppings; values will vary based on brands and salt.

