Wash the rice in a large container of water until the water runs clear. Cover again with water, add 2 tsp salt and soak for 1 hour. Drain and set aside.
Set a small pot of water to boil. Using a vegetable peeler, peel off thick strips of rind off the oranges, including a little of the white pith. Slice these strips into very small slivers.
When the water is boiling, drop the slivers into the water and cook 1 minute. Drain and rinse with cold water. Set aside.
Clean the barberries and place them in a sieve set inside a bowl. Cover with cold water and soak for 20 minutes. Pull the sieve and rinse under cold water. Set aside. If using cranberries, skip this step.
In a mortar and pestle, crush the saffron threads with a few pinches of sugar until a powder forms. Stir in 3 tsp of orange blossom water and set aside.
Heat 1 tsp oil in a pan over medium heat. Add the almonds, pistachios and sauté for a minute. Add the raisins and toss with the nuts. Transfer to a bowl and set aside.
Heat 2 tsp of the saffron orange blossom water mixture, 1 tsp sugar and 1 tsp oil over medium heat in the same pan. Add the carrots and orange peel and sauté for 2 minutes.
Add the remaining sugar, the remaining saffron orange blossom water mixture, the cinnamon stick and the cardamom and sauté for 1 minute.
Add 1 cup water, bring to a boil. Lower to medium heat and cook for about 10 minutes or until the carrots lightly caramelize and the liquid has reduced to a syrup. Drain the carrots and orange peel and reserve the syrup.
In a large heavy-bottomed pot with a lid, bring 3-4 cups of water to a boil. Add the remaining 2 tsp salt, rice, remaining 1 tsp plain orange blossom water to the pot.
Boil briskly until the rice has risen to the surface and when bitten into, a grain of rice feels soft, 6 to 10 minutes. Drain the rice and rinse with cold water.
Transfer and turn it to a bowl and gently mix the remaining saffron orange blossom water and the reserved carrot/orange syrup.
Take a large spoonful of rice at a time and gently spread it over the bottom of the pot. Give the pot a shake to even out the base. Add more spoonfuls of rice, gradually shaping it into a pyramid.
Wrap the lid of the pot with a clean dish towel and cover firmly to prevent steam from escaping. Cook 20 minutes over low heat.
To serve, arrange on a serving platter layers of rice, then the caramelized carrot - orange peel, cranberries and nut mixture.