Heat a wide pan over low heat.
Add cinnamon stick, broken into smaller pieces, black cardamom, star anise and nutmeg piece in the pan. Roast till it becomes warm. Check by touching it.
Then add the peppercorns and cloves.
Stir and roast till they become warm. This will take about 1 minute.
Add the mace and bay leaves. Break the leaves into small pieces. Becomes easier to grind.Roast till they become warm.
Transfer these spices to a wide plate to cool.
Put the pan back on the heat.
Add green cardamoms and coriander seeds. Roast till you get the aroma of the coriander seeds and they become light brown in colour. This will take about 2-3 minutes.
Transfer the spices to the plate with other spices.
Return the pan on the heat. Add cumin, fennel and caraway seeds. Roast them stirring all the time till the cumin seeds begin to crackle. This will take about 1-2 minutes.
Transfer the spices to the plate. Allow all the spices to cool down completely.
Transfer all the spices to the spice or coffee grinder.
Grind the garam masala to a fine powder.
Store garam masala in an airtight container to maintain the freshness and fragrance.
If you don't use the spice mix too often then store it in an airtight container in the fridge.