In a large pot, melt 3 tablespoons of butter over medium heat. Add chopped carrots, celery, and onion, sautéing until softened, about 5-7 minutes. The kitchen will start to smell delightful!
Stir in the minced garlic and cook for 1 additional minute until fragrant, being careful not to let it brown.
Pour in the low-sodium chicken broth and add the peeled, cubed potatoes. Bring to a gentle simmer and let it cook for about 15-20 minutes, until the potatoes are tender.
Add the chopped broccoli florets and dried thyme, cooking for another 5 minutes, or until the broccoli is vibrant green and tender.
In a separate pan, whisk the remaining 2 ½ tablespoons of butter with the flour over medium heat. Cook until bubbly and golden, about 1-2 minutes.
Gradually whisk in the milk to the roux until smooth and thickened, about 3-4 minutes. Stir in the heavy cream and remove from heat.
Pour the cream mixture into the soup pot, stirring until everything is well combined and heated through.
Add the shredded cheddar and parmesan cheese, stirring until melted and creamy.