Wash and soak dal in water for four to six hours. After that drain the water and grind dal coarsely and keep it aside.
Now heat the pan at medium heat and add water, milk, sugar, saffron and small cardamom.
Mix and cook till sugar dissolves and keep it aside. If possible do not add any water or add very less water while grinding.
Now heat pan at low heat and add ghee. As the ghee melts add ground dal, mix everything and cook on low heat for at least twenty to twenty-five minutes.
Stir it continuously or after every few seconds to avoid burning.
Once you see dal is loosing ghee and dal looks roasted increase the heat to medium and cook dal for another five minutes to get nice golden color.
Once dal is golden brown add milk mixture little bit at a time and mix well. Cook till dal absorbs the milk completely.
Now reduce the heat to low and cook dal till ghee separates. Stir it after every few minutes to avoid burning.
Once ghee separates from dal and you can see dal has become grainy and house is filled with nice sweet aroma halwa is ready.
Switch off the heat and garnish halwa with fine chopped nuts.