Wash the rice several times then soak in cold water with 1 tsp salt for at least 30 mins
Grind the Biryani Masala spices to a powder then mix in the cayenne pepper. Coat the meat in the Biryani Masala and leave for 30 mins.
To make the crispy-fried onions, halve the onions and slice them very finely. Heat the oil in a wide frying pan and fry the onions (in batches if needed), sprinkled with salt, for 10 mins until deep brown. Spread on a plate lined with kitchen paper to crisp.
For the brown onion paste, fry the onion in the oil for 10 mins or until golden. Add the garlic and ginger for1 min, cool then blend to a paste with the almonds and water as required.
Heat the oil in a large pan. Fry the spices until they sizzle then add the marinated meat. Fry over a high heat for 2-3 mins until the meat starts to brown then stir in the brown onion paste and cook for about 10 mins until the paste thickens.
Allow to cool a little, then gradually incorporate the yoghurt. Return to the heat and add the stock/water and cook over a gentle heat for about 30 mins until the only gravy remaining is clinging to the meat. Season to taste.
Meanwhile bring a large pan of water to the boil with the rice spices then add the rice and boil for 5-7 mins until three-quarters cooked (when squeezed the core should still feel firm). Drain and spread on a large plate to steam dry for about 10 mins.
Heat the oven to 150°C and grease a casserole with butter. Put a shallow layer of rice in the bottom then sprinkle over a little saffron-infused milk and some crispy-fried onions. Spoon the meat on top then cover with the remaining rice little by little, drizzling over the saffron milk in strands.
Finish with some more crispy-fried onions, reserving a third for the garnish. Dot with butter then tightly seal the casserole with foil and put on the lid. Bake for 1 hr.
While the biryani is in the oven, prepare the garnish ingredients. To serve, spoon the biryani onto a platter and garnish with the sultanas, almonds and crispy-fried onions.