Take a small pot (preferably with a handle) and add water, sugar, cardamom and saffron. Heat it on a medium-high heat until the sugar melts. Turn off the flame and keep it aside.
Heat a pan on medium flame and add ghee. Once the ghee has melted, add the besan flour.
Turn the flame to medium-low and roast the besan while stirring continuously until it starts turning golden brown. It will take about 12-15 minutes or more to fully roast the besan and your kitchen will be filled with a delicious nutty aroma.
Add the milk 1 tablespoon at a time while stirring continuously. The mixture will fluff up when you add the milk. This steps helps to give the halwa a little grainy texture.
Pour in water and sugar mixture little by little while stirring continuously. Be careful as there will be some splatter when you initially start pouring, but that will stop once the syrup mixes with the besan.
The halwa will start to boil and thicken. Continue stirring.
When it is just thickened, stir in a tablespoon of ghee for the extra richness.
The halwa is ready when it starts to leave the sides of the pan. Remove from flame. Garnish with nuts. Serve immediately.
Which besan to use? If you can find ladoo besan which is course, use that for this halwa recipe as it gives a grainy texture to the final dish. Otherwise regular besan will work too. You can also use the "Dhrabo" method to get the grainy texture for the halwa. Add gram flour, 1 tablespoon milk, and 1 tablespoon ghee in a small mixing bowl and mix well. Allow for a 30-minute resting period. After 30 minutes, sieve the mixture with a medium hole strainer to get a consistent grainy texture to the besan.What to use: Milk or Water to make Halwa? The easy answer is that either works or a mixture of both milk and water works too. When using water, the color will be more on the brownish side. If you use milk, the final Besan Halwa will not be as brown in color. You can also use a combination such as ½ cup milk with 1 cup of water. Ghee: Don't skimp on ghee when making halwa. I have tried with less and it does not taste as good :-)Roasting Besan: Be patient when roasting the gram flour, it takes time. But roasting along with ghee definitely helps to speed the process. Optional ingredients: Nuts, saffron and cardamom are optional. Add or skip based on your taste and availability.Serving: You can serve it warm (preferred) or cold. To reheat, place in microwave for 15-30 seconds. Or heat in a pan on stovetop until the halwa softens and is warmed well.