Mix the lamb with the spice blend, yogurt, lemon juice and a pinch of salt. Leave at room temperature for at least 30 mins or chill overnight.
Heat 2 tbsp oil in a large frying pan and cook the onions over a low-medium heat for 15-20 mins until caramelised. Meanwhile, rinse the rice three times under cold water. Drain, then cover with fresh water and leave for 30 mins.
Transfer the onions to a bowl, add the remaining oil to the pan and brown the lamb in batches. If the marinade starts to catch, scrape it from the bottom of the pan and keep stirring – it’ll add to the flavour. Tip the meat back into the pan with the garlic and ginger. Cook for another minute or 2, then add the tomatoes and 200ml water (swill the water around the dish the lamb was marinating in to pick up all the marinade before adding it to the pan). Season with salt and bring to a gentle simmer. Cover and cook for 45 mins, stirring now and then and topping up with a splash of water if the sauce is catching. You can now chill the lamb for up to two days.
Pour away the rice water, cover with fresh water and season. Bring to the boil, bubble for 2 mins, then drain and leave to cool. Put the saffron in a bowl, pour over 50ml boiling water and leave for 10 mins to steep.
Smear 50g butter inside a casserole dish. Sprinkle over a little of the Indian spice mix and some salt. To assemble the biryani, start with 1/3 of the lamb, top with 1/3 of the rice, 1/3 of the onions, a cinnamon stick, a couple of cardamom pods, a few bay or curry leaves and a star anise. Repeat until all of the ingredients have been used up. Spoon the saffron and its water over the final layer of rice, dot with the remaining butter and season with salt. You can now chill it for up to 24 hrs.
Heat oven to 200C/180C fan/gas 6. Unroll the pastry and cut into a circle a little larger than the dish. Brush a little egg around the outside lip of the dish, then lift the pastry on top, pressing it around the edge to seal. Brush with more egg and sprinkle with nigella seeds. Bake for 45-50 mins until golden brown. Mix the herbs and onion, and serve with the biryani and extra yogurt.