Vegan Mushroom and Walnut Biryani
Layers of saffron-scented basmati sit over a rich masala of deeply browned cremini mushrooms, toasted walnuts and creamy coconut milk, then steam together in one pot. It's fragrant, hearty and fully plant-based.
- Prep
- 30 min
- Cook
- 1 hr 15 min
- Wait
- 40 min
- Total
- 2 hr 25 min
- Makes
- 6 generous servings (about 9 cups biryani)
Steps
Before you start
- Start the rice soak first (30 minutes). You can slice the onions and chop the mushrooms while it soaks.
- Shake the can of coconut milk well so the cream and liquid are blended before measuring.
- Use a heavy 5–6 quart (5–6 L) pot with a tight lid. A thin pot will scorch the bottom layer during steaming.
- Read the rice step before you start. The rice is only partly cooked when drained, and it finishes by steaming.
Soak rice and saffron
- Rinse 2 cups (400 g) basmati in a bowl with cold water, swirling and draining 4–5 times until the water is almost clear.
- Cover with fresh cold water and soak 30 minutes, then drain well in a strainer.
- While it soaks, crush the saffron, drop it into the hot coconut milk (3 tbsp / 45 ml) in a small bowl, and leave it to steep.
- Slice the onions and chop the mushrooms, walnuts and herbs now.
+ Show details− Hide details
Ready when: Soaked grains turn opaque white and the saffron milk is deep orange-gold
Tip: Don't skip the rinse. Surface starch makes biryani rice gummy.
Toast the walnuts
- Set the 5–6 quart pot over medium heat.
- Add the chopped walnuts and toast dry, stirring often, for 3–4 minutes.
- Tip them onto a plate.
+ Show details− Hide details
Ready when: Walnuts smell nutty and are lightly golden at the edges
Tip: Walnuts burn quickly once they smell toasty. Remove them from the pot right away.
Brown the onions
- In the same pot, heat the oil over medium heat.
- Add the sliced onions and ½ tsp of the masala salt (from the 1½ tsp).
- Cook, stirring every minute or two, for 16–18 minutes until deep golden brown.
- Reduce the heat slightly if they brown faster than they soften.
- Scoop out about one-third of the onions onto a plate to use as topping later.
+ Show details− Hide details
Ready when: Onions are soft, reduced to about one-third of their volume, and a deep golden brown, with some darker edges
Tip: Browned onions give the biryani its sweetness and color. Don't rush them on high heat or they turn bitter.
Add aromatics and mushrooms
- Raise the heat to medium-high.
- Stir the garlic, ginger and slit green chilies into the onions in the pot and cook 1 minute until fragrant.
- Add the mushrooms and cook, stirring every minute, for 8–10 minutes.
- They will first release liquid, then the liquid will cook off.
+ Show details− Hide details
Ready when: Mushrooms have shrunk by about half, the pot looks nearly dry and the mushrooms are starting to brown
Tip: Don't salt the mushrooms yet. Salt early draws out water and slows browning.
Build the masala
- Lower the heat to medium.
- Add the garam masala, coriander, cumin, turmeric, chili powder and the remaining salt.
- Stir for 30 seconds.
- Add the tomatoes and cook 4 minutes until they collapse.
- Pour in the 1½ cups (355 ml) coconut milk and simmer, stirring occasionally, for 8–10 minutes.
- Stir in the toasted walnuts and lemon juice.
+ Show details− Hide details
Ready when: Sauce is thick and creamy, coats the mushrooms and leaves a trail when you drag a spoon through it. It should not be soupy
Tip: A thin sauce will make the rice mushy. If it looks loose, simmer a few more minutes. Taste and make the masala slightly over-seasoned, as the rice will mellow it.
Parboil the rice
- While the masala simmers, bring the water to a rolling boil in the large pot.
- Add the salt, bay leaves, cardamom, cloves and cinnamon stick.
- Add the drained rice, stir once gently and boil for 5–6 minutes.
- Test a grain: it should break when pressed between your fingers but still have a firm white core.
- Drain immediately in a strainer and discard the whole spices if you like.
+ Show details− Hide details
Ready when: Grains are about 70% cooked: long, slightly firm in the center, and they snap rather than mash
Tip: Err on the side of undercooked. The rice finishes cooking in the steam, and overcooked rice turns to paste.
Layer the biryani
- Take the masala pot off the heat and level the masala with the back of a spoon.
- Spoon half of the parboiled rice evenly over the masala without pressing it down.
- Scatter half the mint and cilantro over it, then add the remaining rice in a loose mound.
- Drizzle the saffron coconut milk over the top in streaks, then scatter on the remaining herbs and the reserved browned onions.
+ Show details− Hide details
Ready when: Rice sits loose and fluffy in an even layer on top of the masala, with golden streaks of saffron
Tip: Don't stir or pack the layers, or the steam can't move through the rice.
Steam on dum
- Cover the pot with a sheet of foil pressed around the rim, then set the lid on tightly.
- Place over high heat for 2 minutes, until you see steam escape at the edges.
- Reduce to the lowest heat setting and steam undisturbed for 25 minutes.
- Use a heat diffuser or flame tamer if your burner runs hot.
+ Show details− Hide details
Ready when: The lid is hot, steam is rising and you smell cardamom and saffron. The rice grains are fully tender when tasted from the top
Tip: Don't lift the lid while it steams. Escaping steam leaves the rice hard.
Rest and fluff
- Turn off the heat and leave the pot covered for 10 minutes.
- Remove the lid and gently fold from the edge down to the bottom with a flat spoon or fork, bringing masala up through the rice.
- Serve hot.
+ Show details− Hide details
Ready when: Rice is fluffy with separate grains, marbled yellow and white, and the masala is moist but not wet
Tip: Fold gently so you don't break the long rice grains.
Good to know
Tips
- Brown the mushrooms in a wide pot and don't crowd them. If your pot is smaller, brown them in two batches for better flavor.
- Use aged basmati if you can find it. It stays more separate and elongates better.
- For a crisp bottom (tahdig style), use a heavy nonstick pot and extend the low-heat steam by 5 minutes, but watch for any burnt smell.
- Serve with cooling plant-based raita (cucumber and unsweetened yogurt), a squeeze of lemon and a simple kachumber salad.
Make ahead
The masala can be made through step 5 up to 2 days ahead and refrigerated. Reheat it in the pot until bubbling, then parboil the rice and layer and steam as directed. Soaked rice can sit drained in the fridge for up to 2 hours.
Storage & reheating
Room temperature: up to 2 hours after cooking. Fridge: cool quickly and store in an airtight container for up to 4 days. Freezer: up to 2 months in portions. Reheat single portions covered in the microwave with 1 tbsp water for 2–3 minutes, stirring halfway, or in a covered pan over low heat for 8–10 minutes until steaming hot all the way through.
Substitutions
- walnut halves → raw cashews or pecans. Toast the same way. Cashews give a sweeter, softer bite.
- cremini mushrooms → baby bella, shiitake or a mix. Use the same weight. Slice shiitake caps thickly and discard the tough stems.
- full-fat coconut milk → unsweetened plain cashew cream or unsweetened plant-based yogurt thinned with a little water. The flavor will be tangier and less rich. Add the yogurt off the heat to prevent splitting.
- saffron threads → ¼ tsp ground turmeric plus 1 tbsp rose water. Gives color and floral aroma, but not true saffron flavor.