Heat the olive oil in a large saucepan or deep frying pan over a medium heat.
Add the beef mince and cook for 5–6 minutes, breaking it up with a spoon, until browned.
Add the onion, garlic, red pepper, and carrot, then cook for another 5 minutes until softened.
Stir in the cumin, paprika, and chilli powder.
Add the chopped tomatoes, tomato purée, kidney beans, and stock.
Season lightly with salt and pepper, then stir well.
Bring to a gentle simmer and cook for 25–30 minutes, stirring occasionally, until the sauce has thickened and the flavours have developed.
Taste and adjust the seasoning if needed.
Serve warm with rice, jacket potatoes, or gluten-free tortilla chips.