Heat the oil in a wide, heavy pan and fry the sliced onions on medium heat, stirring often, until they turn deep golden and crisp — about 10 to 12 minutes. Lift them out with a slotted spoon and keep aside. This fried onion (birista) is used in the layering.
In the same pan, add the ginger-garlic paste and green chillies. Fry for a minute on medium heat.
Add all the mixed vegetables and sauté for 3 to 4 minutes.
Lower the heat, then add the turmeric, red chilli powder, biryani masala and salt. Stir well.
Take the pan off the heat for a moment and stir in the whisked curd a spoonful at a time (this stops it splitting). Return to low heat and cook for 5 to 6 minutes, until the vegetables are just tender and the masala looks glossy. The masala should be thick, not watery.
Meanwhile, boil the 6 cups of water with all the whole spices, salt and lemon juice. Add the soaked, drained rice and cook until it is about 70 percent done — the grain should still have a firm bite in the centre. Drain immediately in a colander.
Now layer the biryani in a heavy pot or the same wide pan: spread half the vegetable masala at the bottom, then half the rice over it. Sprinkle over half the fried onions, half the mint and coriander, and a few spoonfuls of saffron milk and ghee.
Repeat with the remaining masala and rice, and finish with the rest of the fried onions, herbs, saffron milk and ghee on top.
Cover the pot tightly — seal the lid edge with a strip of dough, or cover with foil and then the lid. Cook on the lowest flame for 20 minutes (place the pot on a tawa/griddle if your flame runs hot). Then switch off the heat and let the biryani rest, still covered, for 10 minutes.
Open the lid, fluff the top layer gently with a fork or the edge of a spoon without breaking the grains, and serve hot with raita, mirchi ka salan and lemon wedges.