Preheat the oven to 400 degrees F. Line a baking sheet with parchment paper. Place the broccoli florets on the sheet and drizzle with olive oil. Sprinkle with salt and pepper. Roast for 15 to 20 minutes, until the florets are just golden brown and not overly charred.
While the broccoli is roasting, heat a large stock pot over medium-low heat and add the butter. Stir in the onions and garlic with a pinch of salt and pepper. Cook, stirring often, until the onions are translucent. Stir in the chicken stock.
Once the broccoli is finishing roasted, stir in about ¾ of it (leave some to garnish the top with). Transfer the mixture to a blender and very carefully blend until the mixture is pureed, holding a towel on top of the lid to keep it secure and safe.
Pour the mixture back into the pot over and head over low heat. In a shaker bottle, add the flour to the half and half and shake it well for 30 seconds to create a slurry. Slowly pour the mixture into the soup base while stirring. Let it cook for 2 to 3 minutes, stirring, until the mixture slightly thickens even more.
Keep the soup over low heat and very gradually stir in small handfuls of cheese until they melt completely. Stir in the parmesan cheese too. Taste the soup and season it with more salt and pepper if necessary. Serve the soup immediately with a sprinkle of chives on top, some of the leftover roasted broccoli and the garlic breadcrumbs!