In a large soup pot or Dutch oven, heat butter and olive oil over medium heat.
Add onion, carrots, and celery. Cook for 5–7 minutes until soft.
Add garlic and cook for 30 seconds.
Sprinkle flour over the vegetables and stir well to coat. Cook for 2 minutes to remove raw flour taste.
Slowly pour in chicken broth, whisking constantly to avoid lumps. Then add milk.
Bring to a gentle simmer, stirring frequently. The soup will thicken slightly.
Stir in shredded chicken, thyme, salt, pepper, and optional seasonings. Simmer for 10–15 minutes.
Stir in frozen peas and corn. Simmer for another 5 minutes, or until everything is heated through.
Stir in heavy cream at the end, if using.
