Heat olive oil in a large pot over medium heat.
Add diced onion, carrots, and celery. Cook until vegetables soften, about 5-7 minutes.
Add minced garlic and cook until fragrant, about 30 seconds.
Pour in broth and bring to a gentle simmer.
Add beans, bay leaf, and oregano. Simmer for 10 minutes to allow flavors to meld.
For a creamier texture, mash about 1/4 of the beans with a fork before adding them to the soup.
Add chopped escarole and stir until wilted, about 3-5 minutes.
Season with salt and pepper to taste.
Remove bay leaf before serving.
Ladle into bowls and top with freshly grated Parmesan cheese and a drizzle of good olive oil.
Serve hot with crusty Italian bread and offer red pepper flakes on the side for those who enjoy a bit of heat.