In a large saucepan set over medium heat, melt butter. Cook cardamom, cloves, and peppercorns for 2 to 3 mins or until fragrant. Stir in onion, garlic, ginger. Cook, stirring often, for 5 to 6 mins or until tender and starting too lightly brown.
Stir in rice, salt and turmeric. Cook for 1 to 2 mins or until well coated and toasted. Stir in broth and coconut milk; bring to a boil.
Reduce heat to low. Cover and cook for 20 to 25 mins or until rice is tender and absorbs most of the liquid. Remove from heat. Let stand, covered, for 5 minutes before fluffing with a fork. Remove spices before serving.
Stir in crispy fried onions and cilantro.
Add 2 curry leaves, 2 kaffir lime leaves, 2 bay leaves or 2 strips fresh lime peel.
For homemade crispy onions, heat 1 cup vegetable oil in wok set over medium-high heat until almost smoking. In a bowl, toss sliced onions with 2 tbsp baking powder, 1/2 tsp salt and 1/2 black pepper. Cook stirring often until golden brown and crispy. Drain on paper towel.
Substitute crispy onions with crispy shallots if preferred.