Dice the tomato and onion and heat a large frypan over a medium-high heat
Add a drizzle of your preferred cooking oil and add the onion. Cook, occasionally stirring, until starting to brown. Add the beef and cook for 2 minutes, stirring just enough to brown evenly.
Add beans and spices, and stir to combine.
Add corn and tinned tomatoes and return to low heat.
Add the stock cubes, mix in 2 cups water, bring everything to a simmer, and cook for 15-20 minutes until the soup thickens. Stir through the fresh tomatoes and cook for a minute more.
Serve in bowls with sour cream, cheese, fresh tomatoes, and spring onion on top.