Blend the raw cashews with 1 cup of water and the lemon juice. Set aside.
In a saucepan, place 2 cups of water, cardamom, bay leaves, and half the shahjeera. Add salt to taste.
Pour in the drained rice and place over a medium fire. When the water starts to boil, cover the saucepan with a tight-fitting lid and then turn down the heat to the lowest setting.
Let the rice steam for 8 minutes. Turn off the heat.
Heat the oil in a large saucepan with a tight-fitting lid. Add the remaining shahjeera seeds or cumin seeds and, when they start to change color, add the mint and coriander leaves. Stir to mix.
Add the ginger garlic paste and saute another couple of minutes, stirring frequently to ensure they do not stick to the bottom of the pan. Sprinkle on some salt and pepper to season.
Add the turmeric, cayenne or paprika, biryani masala, half of the fried onions, and the blended cashew-lemon paste. Stir well to mix and let it cook for a minute. Add salt.
Add the mushrooms to the saucepan and stir to coat with the spices. If the mixture looks too dry, add ½ cup of water or vegetable stock. Let the sauce come to a boil.
Turn off the heat. Spread the cooked rice on top of the sauce in an even layer. Sprinkle on the remaining fried onions and the saffron with the milk.
Cover with a tight lid. If the lid you have doesn't fit snugly, you can cover with a sheet of aluminum foil and then place the lid on top to make it as airtight as possible.
Turn the heat to high for about three minutes, then lower it to the lowest setting, and let the biryani cook, undisturbed, for 20 minutes. Turn off the heat and let it stand for at least 10 minutes, uncovered, before serving.