Place rice in a large, nonstick pot. Cover rice with water and, with your hands, agitate the rice, releasing the starch. Pour off the cloudy water then repeat this process until the water is clear. Pour off the water a final time and drain rice in a colander.
Place drained rice, 2 cups water, coconut milk, and salt in a large pot. Stir to combine. Bring to a fast boil over high heat. Reduce heat to low. Cover pot and simmer rice until just tender and liquid is absorbed, about 25 to 30 minutes.
Meanwhile, melt butter in a large nonstick skillet. Add onions, raisins, and cashews. Saute, stirring occasionally, for 3 minutes.
When liquid has been absorbed and rice is tender, fluff rice with a fork.
Add onion mixture to rice and toss with a fork. Season with salt and pepper to taste.
Transfer to a serving bowl.
TO MAKE AHEAD: Rice can be chilled and refrigerated overnight. Microwave for 3 minutes or until heated through before serving.
NOTE: Substitute dried cranberries or dried cherries for the raisins for a different flavor boost. Rehydrate them in 1/4-cup warm water and then drain them before using in this recipe.