Heat oil in a large pot over medium-high heat, add onion, and cook until soft, about 3 minutes.
Stir in garlic, ginger, garam masala, turmeric and cook until fragrant, 2 minutes.
Add potato, carrot, cinnamon stick, cardamom, bouillon cubes, and water.
Cook for 7 minutes.
Add rice, stir to combine. Bring to a boil, cover the pot and reduce to the lowest heat and simmer until water has evaporated and rice is tender, about 50-60 minutes.