To begin, rinse the basmati rice several times in cold water until the water runs clear. Soak the rice in generously salted water for at least 30 minutes, which helps the grains cook evenly. Drain and set aside before moving to the next step.
Place the lentils in a saucepan and cover with fresh water. Bring to the boil, then simmer for 15 to 20 minutes until tender but not mushy. Drain well and keep aside, ready to layer later.
Heat the oil or butter in a wide pan over medium heat. Add the sliced onions and cook slowly, stirring often, until deeply golden and sweet. This stage builds much of the dish’s character, so allow time before moving on.
Stir the raisins into the onions and cook briefly until they plump. Add cinnamon, cumin, and turmeric, mixing gently so the spices bloom without burning. Remove from the heat and set aside.
Bring a large pot of water to a rolling boil. Add the soaked rice and cook for 5 to 7 minutes until the grains are soft on the outside but firm at the centre. Drain immediately and prepare for layering.
In the same pot, add a splash of oil, then layer rice, lentils, and the onion mixture in stages, finishing with rice on top. Shape the rice into a gentle mound to encourage even steaming.
Cover the lid with a clean cloth, place it firmly on the pot, and cook over low heat for 35 to 40 minutes. This slow steam allows the flavours to settle and the rice to become light and aromatic.
Spoon the rice gently onto a platter, mixing slightly to reveal the lentils and raisins. Serve hot with yoghurt, torshi, or fresh herbs, and add dates or nuts if desired for contrast.