Soak the chana daal (split bengal gram) overnight or at least 6 - 8 hours).
Drain the soaking liquid, and place the chana daal in a pot. Add water and milk, and bring the daal to a boil. Make sure the chana daal is completely submerged, and if not, add more water.
Turn the heat to low, and cook the chana daal till it is tender. This process can take anywhere from 45 minutes - 1 hour.
Turn off the heat, and let the chana daal for a few minutes. Add cream to the cooked chana daal and give a quick stir.
Use a hand blender / immersion blender to blend the chana daal into a thick and creamy paste. The paste will be light biege in colour. 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 / clarified butter in a heavy bottomed pan - this can either be stainless steel, anodized aluminium or even non-stick.
Add the crushed cardamom seeds and cook for about a minute. 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.
It’s important to keep stirring the halwa on a regular basis 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.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 light 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 regularly. 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 case the halwa looks too dry, add a splash of milk or cream.
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.
Garnish with remaining pistachios and almonds, and serve hot or cold. I prefer warming the halwa till it becomes soft and then serving.