Heat the oil in a frying pan and fry the onion, bacon, celery, garlic and carrots for 2-3 minutes, or until softened.
Stir in the potatoes and fry for a further 2-3 minutes. Pour in the stock and bring the mixture to the boil. Stir in the tomato purée and simmer for 45 minutes.
Add the haricot beans, herbs, chopped tomatoes and spaghetti and continue to cook until the pasta is tender. Season, to taste, with salt and freshly ground black pepper.
For the croûtons, drizzle the bread with the olive oil.
Heat a griddle pan until hot and fry the bread on one side for 2-3 minutes, or until golden-brown. Meanwhile, preheat the grill to high.
Remove the bread from the pan and top the uncooked side with the mozzarella. Place under the grill for 2-3 minutes, or until the cheese is bubbling and golden-brown.
To serve, ladle the soup into 4 soup bowls and top with a croûton.