Heat the olive oil in a large pot over medium heat. Add the onion, carrots, celery, and fennel, and cook for about 5 minutes until softened.
Stir in the garlic and cook for another minute until fragrant.
Stir in the tomato paste, dried oregano, and dried basil, and cook for another minute. Next, pour in the crushed tomatoes and mix well.
Add the cannellini beans, borlotti beans, chickpeas, cubed potato, vegetable stock, and bay leaves. Stir everything together, bring the soup to a gentle boil, then lower the heat and let it simmer for about 20 minutes until the potatoes are fork-tender.
Stir in the diced zucchini and pasta, and let the soup simmer for another 10 minutes, stirring occasionally, until the pasta is cooked and the zucchini is tender.
Remove the bay leaves, then season the soup with salt and freshly ground black pepper to taste. Stir in the fresh basil leaves just before serving.
