In a large pot, melt 2 tablespoons of butter over medium heat. Add the diced onion and cook for 3-4 minutes until soft and translucent. Add the minced garlic and cook for another minute, stirring constantly to avoid burning.
Add the sliced mushrooms to the pot and cook for 8 to 10 minutes, stirring occasionally, until they release their moisture and start to brown. If desired, set aside a few cooked mushroom slices for garnishing the soup later.
Stir in the chicken broth, thyme, garlic powder, onion powder, red pepper flakes, bouillon cube, salt, and pepper to taste, then simmer for 5 minutes.
While the soup is simmering, prepare the roux. In a small saucepan, melt the remaining 2 tablespoons of butter over low heat. Add the flour and whisk continuously for 2-3 minutes, until the mixture is smooth and light golden.
Gradually pour the heavy cream into the roux, whisking constantly to keep it smooth. Cook for another 2-3 minutes, stirring constantly, until the mixture thickens.
Pour the cream mixture into the simmering soup, stirring continuously to combine.
Turn off the heat and use an immersion blender to blend the soup until silky smooth. For a chunkier soup, scoop out about 1 cup of mushrooms before blending and stir them back in afterward.
Let the soup simmer for 10 more minutes, stirring occasionally, until it reaches your desired thickness. Taste and adjust the seasoning with salt and black pepper as needed.
Serve the soup hot, garnished with chopped parsley and reserved mushroom slices, if desired.