Start by rinsing the rice. You can do this by putting the rice in the thick-bottomed pan it is going to cook in. Fill the pot halfway with water, swish the rice around (the water will get cloudy), and pour out the cloudy water. Repeat 3 times. The water might still be a bit cloudy, and that is o.k.
To the rinsed (and drained) rice add the coconut milk, water, and salt. Stir to combine. Place the pot over medium high heat and bring the liquid to a boil (uncovered). Stir often to prevent the rice from scorching down at the bottom of the pot. Once the liquid comes to a boil reduce the heat to a low, low simmer, cover the pot tightly with a lid. Cook for about 15- 20 more minutes (resisting the urge to peek). Remove from heat (still covered!), and let the rice steam for another 10-15.
While the rice is cooking cook up the shallots in a small frying pan over medium to medium-high heat. Too hot and you'll burn the butter instead of browning it. Add the butter to the pan, then stir in the shallots and a couple pinches of salt. Stir every few minutes letting the shallots brown increasingly until they are dark in color. Transfer to a paper towel until ready to use.
I fluff the rice in the pot so I don't completely dirty up the edges of my serving bowl or platter. Transfer the rice to desired serving vessel and sprinkle with cashews and the crispy shallots.
Serves 4 to 6.