Wash the rice until the water runs clear, then soak about 30 minutes. Drain and set aside. Grind the whole spices to a fine powder.
Heat the oil in a heavy casserole over medium-high. Sauté the sliced onions with a pinch of salt about 15 minutes, until light golden brown and crispy.
Place the lamb in the center, raise the heat to high, and sear both sides about 5 minutes. Add garlic, ground spices, salt, pepper and water; cover and cook until the meat is tender.
In a skillet, roast the almonds until light tan and aromatic. Sauté the soaked raisins with 1 teaspoon sugar and the ground cardamom. Caramelize the 2 tablespoons sugar until brown, add ¼ cup water, and melt into a caramel liquid.
Lift the meat out. Return 3 cups of stock to the pot, adjust salt. Parboil the rinsed rice, then drain.
Layer the rice over the meat and stock, spoon the caramel and carrots on top, cover, and steam on low until the rice is tender. Rest a few minutes, fluff with a fork, and garnish with carrots, raisins and almonds.