Heat 1 tbsp of the oil in a large flameproof casserole or deep frying pan. Add the onion and fry on a moderate heat, stirring occasionally, for 12–15 minutes until golden. Remove from the pan and set aside. Add the raisins to the pan and stir around for 30 seconds, then remove and set aside with the onion.
Add the remaining oil to the pan and heat, then add the cinnamon, peppercorns, cloves, cardamom and coriander seeds and stir around for 1 minute. Reduce the heat to low. Add the ground cumin, cayenne and garlic and stir for a further 30–60 seconds until you can smell the aroma of the spices.
Stir in all the vegetables, then gradually add the yoghurt, still on a low heat. Add 4 tbsp of water, cover the pan tightly and leave to simmer gently for 12 minutes.
Meanwhile, put the rice in another pan with the saffron, 550ml water and a pinch of salt, stir and bring to the boil. Reduce the heat to low, cover the pan tightly and leave to simmer for about 10 minutes until the liquid is absorbed and the rice is just starting to become tender.
Spoon the rice on top of the vegetables. Re-cover the pan tightly and cook gently for a further 10–15 minutes until both the rice and vegetables are tender. Alternatively, layer the vegetable curry and rice in a casserole, cover and bake at 180°C/gas 4 for 20–30 minutes.
Scatter the reserved onions and raisins over the top together with the almonds, coriander and wedges of egg. Serve immediately.