Melt butter in a large pot over medium heat. Add onions, carrots, and celery. Cook until softened (about 5 minutes).
Sprinkle flour over the vegetables and stir well. Cook for 1-2 minutes to remove the raw flour taste.
Gradually whisk in chicken broth, ensuring no lumps remain. Bring to a gentle simmer.
Add shredded chicken, salt, pepper, garlic powder, and thyme. Simmer for 10-15 minutes.
For an extra-smooth texture, blend half the soup (optional) and return to the pot.
Stir in heavy cream and milk. Heat on low (do not boil) until warmed through.
Top with fresh parsley and serve hot with crusty bread.