Melt the butter with the olive oil and sauté the garlic, celery and leeks until soft and fragrant, about 5 minutes over medium heat. You don’t need onion with all that flavor from the garlic and leeks.
Add the carrots, tomatoes and bay leaves and stir to combine well for a few minutes.
Add the veggie broth, apple and other seasonings. Cover and simmer for at least 20 minutes.
Add the cannellini beans and bread and continue simmering, stirring occasionally, for another 5-10 minutes.
Add the almond milk to taste at the end, when the soup is on low, but don't let it boil. If the soup looks too thick, add a bit more almond milk or water, but remember it’ll thicken more as it cools.
Test to make sure the carrots are cooked through. Season to taste and serve with freshly grated Parmesan cheese.