Heat a heavy bottom pan on low heat. Add ghee and let it melt.
Add the sifted besan to the pan and mix.
The besan and ghee mixture will initially form a clump. Keep stirring and breaken up to loosen the mixture.
After about 10 minutes of continuous stirring, the mixture will start to loosen up.
Keep stirring, and at around 15 minutes the besan will have a smooth paste like consistency. Keep roasting for up to 25-30 minutes when the color will have changed to golden and there will be sweet aroma filled in your house.
Remove the pan from heat. You can transfer the besan to another container to avoid overcooking or you can keep stirring the besan in the pan for 2-3 minutes after taking it off the flame. This will help it cool down. Add the cardamom powder to the mixture and mix.
Once the besan mixture has cooled completely in about 15 minutes (touch to make sure), add in the sugar and nuts/raisins (if using).
Mix together with your hands to make a smooth dough.
Pinch a small lemon sized portion from the dough. Roll between your palm to form a round ladoo. You can apply a little ghee to your hands while rolling. Repeat with the remaining dough. You would get about 10 ladoos.
If the ladoos are not perfectly round, you can reshape them by rolling between your hands again in 5 minutes. Store besan ladoo in an airtight container in a single layer.