Toast over low to medium heat, stirring constantly, for 12 to 15 minutes, until golden and fragrant and the ghee begins to separate.
Meanwhile, heat the water until very hot, without bringing it to a boil.
Pour the hot water over the semolina all at once, taking care as the mixture tends to splatter.
Stir immediately to prevent lumps.
Cover and cook for a few minutes, until the water is completely absorbed.
Add the sugar and cardamom.
Stir: the halwa will become runny again.
Cover and cook until the sugar has dissolved and the halwa pulls away from the sides of the pan.
Stir in the reserved nuts and raisins.
Serve hot or warm.
Notes
Slowly toasting the semolina is the crucial step. The more gently it toasts, the better the halwa's flavor and color. The semolina should stay golden, never brown, or it will taste bitter. Use fine semolina for a soft texture and a heavy-bottomed pan that distributes heat evenly.The traditional ratio of semolina, ghee and sugar is 1:1:1. This version halves the ghee. For a richer halwa, add 2 tablespoons of ghee at the end of cooking, when it pulls away from the sides of the pan.The amount of water determines the texture. Use 480 ml for a grainier halwa to eat on its own, or up to 720 ml for a very soft halwa served with poori bread. The 600 ml strikes a happy medium. Replacing some of the water with whole milk gives a creamier result. Rose water can replace the cardamom.A sister version is gajar halwa, or carrot halwa, the festive winter version from northern India. Grated carrots are slowly cooked in milk with ghee and sugar until meltingly soft. It is richer and takes longer to prepare, but remains the most popular halwa for celebrations. Another cousin from southern India is rava kesari, a semolina halwa colored with saffron and flavored with cardamom.