Heat oil in a large (6-quart) cooking pot over medium heat.
Add whole spices and whole green chili. If you slit it midway down the center, it adds more heat to the curry. If you don't want that, just punch it once with a fork so it does not burst in the hot oil. Let it splutter for about 30 seconds, and then add the onions.
Sauté the onions until they turn opaque and start to brown slightly at the edges. Stir occasionally so that the onions don't burn. About 4 minutes.
Add ginger paste, garlic paste, and spice powders. Continue to sauté for an additional 2 minutes.
Be sure to scrape the bottom of the pan to make sure nothing sticks and burns. Add the chopped tomato and cilantro.
Cook, stirring frequently, until most of the moisture is absorbed and the oil starts to rise on the edges of the pan. About 10 minutes.
Add the drained rice and carefully sauté it for about 3 minutes until the rice starts to turn opaque. Make sure it does not stick to the bottom of the pan and burn!
Pour in the stock and water, stir, cover, and boil on medium heat. About 10 minutes.
Add the peas and carrots and gently stir them in.
Cover and cook on medium-low. When the water starts to evaporate and pits form on the top of the rice, reduce the heat to low. Cook another 5-6 minutes.
Check a few grains of rice to see if the rice is done by pressing a grain between the thumb and forefinger. If it is still gritty, cover it and cook on low heat for 2 minutes more.
Turn the heat off and let sit for 5 minutes. Fluff rice with a fork.
Serve on a rice platter or serving dish and garnish with sauteed onions, cashews, raisins, or chopped fresh cilantro/coriander.
This makes for a satisfying meal paired with raita. It also goes well with any curried lentil, or vegetarian or non-vegetarian curry, or with any style raita.