Preheat the oven to 200°C/gas mark 6. Put the aubergine in a bowl with ½ tbsp of oil and add the ras el hanout, tossing to coat. Spread out on a baking tray and bake for 20 minutes until browned.
Meanwhile, heat the remaining oil in a large frying pan over a medium-high heat. Add the onions and cook for 8 minutes until soft. Add the cardamom, cinnamon, saffron and bay leaves and continue to cook for 1 minute until fragrant. Add the rice and stir until completely coated in the oil. Continue to stir for a couple of minutes until the rice starts to toast. Add 450ml water, stir and bring to the boil.
Reduce the heat to its lowest setting and poke holes in the top of the rice to allow steam to escape. Cover with foil and a tight-fitting lid, then continue to gently simmer for 15 minutes. Remove the lid, then gently stir through the dried cranberries, trying not to scrape the bottom of the pan. Replace the foil and the lid, then turn off the heat, allowing the rice to continue to cook in its own steam for 5 minutes.
While your rice finishes cooking, heat a small frying pan over a medium heat and toast the almonds until they just start to brown, stirring to ensure they don’t catch. Once the rice is cooked, tip on to a large serving platter, top with the roasted aubergine and scatter over the toasted flaked almonds.