Dry roast the semolina in a pan over medium heat. Stir continuously with a wooden spoon in a circular motion for 5-8 minutes. You will see the colour change from pale yellow to brown. Take off the heat and continue stirring for a minute more to prevent the granules at the bottom from burning.
Divide the nuts (almonds and pistachios) into two parts. Chop one half and grind the rest in a dry spice or coffee grinder.
Peel and grind the cardamom also. You can do this in a mortar and pestle separately or save time and throw the peeled cardamom into the spice grinder along with the nuts above.
Cooking (12 minutes)
Heat the ghee in a deep, heavy bottomed pot or karahi (wok) and add the rest of the ingredients except the chopped nuts.
Cook on medium heat, stirring continuously with a wooden spoon in a circular motion. After a few minutes, you will notice the mixture becoming thicker as the liquid evaporates, leaving behind a thick, granular and shiny halwa. The stirring will become more difficult as the halwa forms but don't stop or else it will burn.
Garnish with the chopped nuts and serve warm.
All the ingredients including the semolina and ghee are available in any Indian store near you. They can be found in Walmart or Superstore too if you are in Canada.