Heat olive oil in a Dutch oven over medium heat for about 1 minute until shimmering.
Add onion, carrots, and celery, cook 5 minutes until soft and smelling good.
Stir in garlic, bay leaves, and thyme, cook 1 minute until really fragrant.
Add white beans, ham, and chicken broth, and stir everything together really well.
Bring to boil, then turn the heat to low and cover the pot completely.
Simmer 120 minutes, stirring sometimes until beans get tender and super creamy.
Remove the ham bone if using, shred the meat, and put it back in the pot.
Season with salt and pepper to taste, adjust until it tastes just right.
Remove bay leaves before serving into bowls for everyone to enjoy together.
Garnish with fresh parsley if you want, and serve hot with crusty bread.