Soak the chana daal (split bengal gram) overnight or at least 6 - 8 hours).
Drain the soaking liquid, and place it in a pot with water and milk to boil. Make sure the chana daal is completely submerged, and if not, add more water.
Boil on low heat till the chana daal is tender (this will take about 45 minutes - 1 hour).
Remove the chana daal from heat, and add cream in the pot.
Use a hand blender / immersion blender to blend the chana daal into a thick paste. A food processor can also be used. Chana daal can be difficult to blend, so if necessary add a splash of milk. Make sure the daal is blended properly else you will feel a bit of graininess in the final halwa. Set aside the blended daal mixture.
Crush the cardamom seeds in a mortar & pestle - this step releases the flavour and aroma of the cardamom seeds.
Heat ghee in a non-stick wok.
Add cardamom seeds and cook for about a minute, and then add the blended daal mixture.
Turn the heat to low - medium and stir the daal mixture vigorously. In the beginning it will look as if the ghee isn’t absorbed, but as you keep stirring the ghee will be absorbed and the halwa will come together.
As it cooks, the halwa will change colour from cream/beige in colour to a light golden brown to a caramel-ish golden brown (similar to the colour of caramel).
It’s important to keep stirring the halwa constantly especially after it turns light brown, otherwise it can burn. This process does require quite a bit of muscle work as well as constant standing on the stove, so if you have other tasks to do, best to turn heat to low or put a tawa / frying pan below the pot to protect the halwa. This will increase the total cooking time, but reduces the frequency of stirring and minimises the risk of burning.
Once the halwa turns golden brown in colour, add the sugar. As you add the sugar, the halwa will thicken initially, but after a few minutes the sugar will melt and the halwa will become easy to handle. Cook for about 10 - 15 minutes making sure to stir constantly. Once the sugar is added, the halwa is prone to burning so be careful.
At this point, taste the halwa and see if you need to adjust the sugar. I start off with adding 1 ½ cups of sugar, and then add a few more tablespoons if needed.
In a separate small frying pan, heat a tablespoon of ghee and then add the almonds & pistachios. Toast for about a minute, and then stir them into the halwa, reserving a few for garnish on the top.
In case the halwa looks too dry, add a splash of milk or cream.
Garnish with remaining pistachios and almonds, and serve hot or cold. I prefer warming the halwa till it becomes soft and then serving, but it’s delicious both hot & cold.