Stir the bacon and olive oil in a large pot over medium heat until the bacon has turned golden brown and released its grease, about 7 minutes. Add the butter, leeks, onion, and celery. Cook and stir until the leeks have softened, about 7 minutes.
Pour in the chicken stock, potatoes, herbes de Provence, coriander, fennel, salt, and pepper. Bring to a boil over high heat, then reduce heat to medium-low, cover, and simmer until the potatoes are just beginning to turn tender, about 8 minutes. Stir in the broccoli, and simmer 5 minutes. Add the milk, and continue simmering until the vegetables are tender, about 5 minutes more.
Pour the soup into a blender, filling the pitcher no more than halfway full. Hold down the lid of the blender with a folded kitchen towel, and carefully start the blender, using a few quick pulses to get the soup moving before leaving it on to puree. Puree in batches until smooth and pour into a clean pot. Alternately, you can use a stick blender and puree the soup right in the cooking pot. Season to taste with additional salt and pepper; sprinkle with chopped green onions to serve.