If you will be baking your eggs, preheat the oven to 200°C (Gas Mark 6 / 400°F).
Heat the oil in a large frying pan, and add the finely diced celery, carrot, onion and garlic. Cook over a medium heat for 5 minutes, stirring regularly, until the vegetables are soft and translucent.
Add the tin of chopped tomatoes, along with the vegetable stock, cannellini beans and tomato puree. Also add the chilli powder, oregano, cumin, and a good pinch of salt and pepper. Turn the temperature up a little, and allow the sauce to simmer for 10 minutes or so, until it has reduced to become quite thick and rich.
It's now time to cook the eggs. If you want to be able to serve the shakshuka in individual baking dishes, distribute the sauce between 2 - 4 ovenproof dishes. Make one or two small wells in each, and crack in the four eggs. Bake for around 15-20 minutes, or until the eggs are cooked to your liking.
Alternatively, if you're happy to serve the shakshuka straight from the frying pan, make 4 wells in the tomato sauce in the pan, and crack in the eggs. Turn the heat down to medium-low, cover the pan with a lid, and allow to steam until the eggs are cooked to your liking.
Serve topped with fresh coriander and more black pepper.