Rinse your basmati rice under cold water, swirling it around until the water runs completely clear. This removes the excess starch and helps the grains stay fluffy and separate. Drain well and set aside.
Heat the vegetable oil in a large saucepan over medium heat.
Add your diced onion and let it cook for about 5 minutes until it's soft and translucent. Keep the heat moderate and don't let the onions burn
For the garlic and cilantro, the traditional Somali way is to pound the garlic cloves and cilantro together in a mortar and pestle into a rough paste before adding them to the pot. If you don't have a mortar and pestle, just mince both finely and add them straight in with the onions.
Stir the garlic and cilantro into the onion and cook for an additional minute until fragrant.
Add all the spices: cumin, coriander, turmeric, cloves, cinnamon sticks, and cardamom. Stir in your Vegeta seasoning (or crumble in the stock cube if using that instead). Stir everything together and let it toast for 1–2 minutes.
Pour in the drained rice and stir it around so every rice grain gets coated. Let it toast for 2–3 minutes, stirring the whole time, until some grains turn lightly golden.
Add 3 cups of water. Give everything a good stir then bring it all to a boil.
Reduce to the lowest heat and let the liquid come to a gentle simmer. Cover the pot with a tight-fitting lid and leave it completely undisturbed for 15 minutes. Please don't lift that lid even once. The rice cooks entirely on trapped steam and every time you open it that steam escapes and the rice won't cook evenly.
When the timer goes off, turn off the heat but keep the lid on for another 5 minutes. That resting time is really important for getting those fluffy separate grains.
Now take the lid off and use a fork to gently fluff the rice. Optionally, finish with a little fresh cilantro on top and serve warm.