Heat the olive oil in a very large saucepan.
Add the onions, carrots, leeks, celery and garlic.
Cook on a low heat until soft but not coloured.
Add the soaked, drained beans, the potatoes, tomatoes, cabbage, chilli and stock.
Bring to the boil, then leave on a very low simmer until the beans are tender, about 1 hour.
You may need to add more stock, depending on how much the beans absorb, but it’s a thick rustic soup.
To serve, toast the rustic bread, then rub each slice with a cut garlic clove and drizzle with the olive oil.
You can either pour the soup over the bread, which is torn into chunks, or serve on the side.