Heat a large pot or dutch oven to medium. Add the olive oil and butter. Add the onion, celery and carrots and sauté with a good pinch of salt until soft, about 4 minutes. Add the garlic and sauté another minute more. Finally add the broccoli and sauté until it is slightly tender. From start to finish, cooking all the veggies should take around 10 minutes. Add the flour and toss it with the veggies. Cook the roux for a couple minutes, until you can no longer detect the raw flour smell. Add the broth and 1/2 tsp of salt. Bring to a boil, then immediately turn to a simmer. Continue to simmer for 30 minutes. Turn the heat to medium-low. Use an immersion blender to purée the soup, or ladle it into a food processor to purée then pour it back into the pot. Stir in the cream cheese until it is melted, then stir in the cheddar.