Heat the olive oil in a large stockpot set over medium heat.
Once the oil is glistening, add the onion, carrot, and celery and cook, stirring occasionally, until the vegetables are beginning to soften, about 8 to 10 minutes.
Add the garlic and cook until fragrant, about 1 more minute.
Add the butter to the pot. Once the butter is bubbling, sprinkle in the flour and stir until a thick paste forms. Cook for about 1 minute.
Slowly add the chicken stock, stirring constantly, and bring to a boil over high heat.
As soon as the soup is boiling, reduce the heat to a simmer and cook until the vegetables are tender, and the soup has thickened, about 5 more minutes.
Add the milk, salt, pepper, dill, chicken, and Parmesan cheese, and stir to combine.
Simmer until the chicken is warmed through and the Parmesan is fully incorporated, about 3 more minutes.
Taste and adjust seasoning as needed.
Ladle the soup into bowls and top with green onions, more dill, and extra Parmesan, if desired.
