Prepare the Rice: Wash the basmati rice in several changes of cold water until the water runs clear. Soak in cold water for 20 minutes, or in warm water for 10 minutes if short on time.
Toast the Coconut and Cashews: Heat 1 teaspoon (5 ml / 0.2 fl oz) of oil in a large frying pan over medium heat.
Add the cashews and fresh coconut.
Stir-fry for 2-3 minutes, watching closely, until the cashews are golden and the coconut is lightly toasted. Immediately transfer to a bowl and set aside.
Cook the Rice: Drain the soaked rice and place it in a deep saucepan.
Cover with plenty of fresh cold water and bring to a boil.
Reduce the heat to a simmer and cook for about 10 minutes, or until tender.
Drain the rice completely.
Steam the Rice: Cover the saucepan with a clean tea towel and then the lid.
Let the rice steam off the heat for 5 minutes to become perfectly light and fluffy.
Temper the Spices: In the same frying pan, heat 3 tablespoons (45 ml / 1.5 fl oz) of oil.
Add the chana dal, mustard seeds, curry leaves, and cinnamon stick.
Once the mustard seeds pop and the curry leaves sizzle, add the sliced shallots, grated ginger, and green chile.
Caramelize the Aromatics: Sauté for 10-12 minutes until the shallots are deeply caramelized and brown.
Reserve a heaped tablespoon of the shallot mixture for garnish.
Combine and Serve: Return the toasted coconut and cashew mixture to the pan along with the salt. Gently fold in the cooked, fluffy rice, using your hands to break up any clumps if needed.
Mix until everything is well combined.
Garnish: Tip the coconut rice onto a serving platter and scatter the reserved caramelized shallots over the top before serving.
Do not substitute desiccated coconut for fresh; the texture and moisture of fresh coconut are essential for this dish.
Covering the just-cooked, drained rice with a tea towel before putting the lid on is the secret to exceptionally fluffy grains.