Heat a large pan over medium heat, and add oil.
Finely chop the onions and add to pan, and stir. While those are cooking, cut the mushrooms and add to pan.
Cook another 5 to 7 min, stir occasionally. You want some browning of the mushrooms, so you may raise the heat slightly during this process.
Add spices, tomato paste, and sliced tomatoes. Cook 1 min, stirring. Then add remaining ingredients except the baby spinach. Stir well and raise heat to bring to a boil, then lower the heat and gently simmer for 2 minutes.
Add the baby spinach, and stir through. Cook another minute or two, until the baby spinach is just wilted. Taste and season with salt and pepper if desired.
Serve with rice, chopped cilantro and red chili flakes if desired.
