With a pestle or bottom of a pan, crush the cardamon pods until the pods are cracked open. Remove the green papery skins. Place the seeds into a spice grinder and process into a fine powder. Add ¼ of the unsweetened coconut into the spice grinder and process until the coconut is finely ground; being careful not to make coconut butter. Repeat the process with the remaining coconut.
In a medium bowl whisk together the milk powder, flour, ground coconut and cardamon mixture, baking powder, and salt until well combined and no lumps remain.
Sprinkle and rub the melted coconut oil into the dry ingredients with your fingertips until it resembles wet sand. Coating the dry ingredients with the oil, particularly the all-purpose flour, will help prevent gluten development when mixing in the coconut milk.
Drizzle two tablespoons (30 ml) of the coconut milk into the bowl. Gently and quickly work the milk into the dry ingredients. Drizzle more milk into the mixture until it just forms a smooth, but slightly sticky dough; do not overwork or the finished product will be dense. To test if the dough is the right consistency, roll a small piece of dough into a ball and see if it holds its shape and there are no cracks. Cracks in the dough mean the dough is too dry; to fix, add about two teaspoons of coconut milk into the dough, or until the right consistency is reached. If the dough does not hold the round shape, the dough is too wet. Sift a small amount of flour onto the dough and gently mix in.
Gently pat dough into a rectangle and cut into 1-inch portions. Alternatively, weigh the dough and divide by 15, to get approximately 15 pieces (1-inch balls weighing about 20 grams each).
Cover the dough with a damp kitchen towel or a piece of plastic wrap to prevent the dough from drying out.
Form each portion into a smooth, crack-free, ball. Place onto a parchment-lined baking sheet and cover with a damp towel or plastic wrap until all the dough is rolled and the oil is up to temperature. If the oil is above 325°F, lower the heat until it dips below that temperature. Too hot oil and the gulab jamuns will cook too quickly and the insides will not be fully cooked through; the lower end of the temperature scale is ideal.
Line a plate or baking sheet with paper towels. Set aside until needed.
Cook in 2 or 3 batches to prevent crowding in the pot and the gulab jamuns from cooking unevenly. Using a heatproof slotted spoon or spider, carefully lower the balls of dough into the hot oil. Immediately, roll the balls to prevent them from sticking to the bottom of the pot. Fry balls for about 4 to 5 minutes, gently moving the balls around to achieve an even golden brown colour all around the balls. With the slotted spoon remove the gulab jamuns from the oil and place them onto the paper-towel-lined plate or baking sheet to drain off some of the excess oil. After about half a minute, place the balls into the hot syrup (see Chef’s Tips).
Repeat the process with the remaining balls of dough until all are resting in the simple syrup. Cover and soak the gulab jamuns in the syrup for at least 4 hours, but preferably overnight. After the 4 hours, gulab jamuns can be served at room temperature or gently reheated over low heat to warm and served with the syrup spooned over the gulab jamuns.
Sprinkle the tops with chopped pistachios, rose petals, or shredded coconut, if desired.
If not serving immediately, soaking overnight, or if there are leftovers, place the gulab jamuns with the syrup into an airtight container and in the fridge for up to 4 days.