Wash and soak the rice for at least 2 hours prior to cooking. Drain thoroughly before cooking.
Grind the coriander leaves, mint leaves, green chillies, 1 inch ginger and 3 cloves garlic into a paste and keep aside.
Grind the remaining ginger and garlic to a fine paste and keep aside.
Hard boil the eggs, shell and cut into halves.
In a large pan, heat 2 tbsp ghee and lightly roast the cashewnuts and raisins; drain and keep aside.
In the same pan, add ½ cup of sliced onions and fry till golden brown; drain and keep aside.
Add the remaining ghee to the pan, and add the whole spices
After about 15 seconds or when the spices turn fragrant, add the ground green paste and lightly fry on medium heat for a minute.
Add the rice along with enough water to just cook the rice (refer to packet instructions for the rice or use 1:1 ration for long grained basmati rice). Season with salt and bring to boil. Once the rice is done, remove from flame and lightly fluff with a fork so that the rice does not turn mushy.
In a deep or heavy bottom pan, heat 2 tbsp ghee and add the remaining sliced onions. When the onions turn soft, add the ginger garlic paste and continue to sauté.
As this browns, add the powdered spices and sauté for another minute. Then add the chopped tomatoes and sauté till the tomatoes turn soft and mushy.
Reduce flame and add coconut milk along with ½ cup water. Simmer for about 5 minutes and add garam masala and season with salt.
Next, add the cooked rice to this pan and lightly mix so that you get a marbled effect to the rice.
Place the boiled eggs on top and garnish with the roasted cashewnuts, raisins, fried onions, coriander and mint leaves.
Remove from heat and keep covered for at least one hour for the flavours to blend and come together.