Add the olive oil to a large stockpot set over medium heat
Once the oil is glistening, add the onions, carrots and celery and cook until the carrots and celery are beginning to soften, about 8-10 minutes
Add the garlic and cook until fragrant, about 1 minute longer
Add the butter to the pan
Once the butter is bubbling, sprinkle in the flour and stir until a thick paste is formed, cooking for about 1 minute
Slowly add the chicken stock, stirring and bring to a boil over high heat
As soon as the soup is boiling, reduce the heat and simmer until the carrots and celery are tender, and the soup has thickened about 5 more minutes
Add the milk, salt, pepper, dill, chicken and Parmesan cheese, stir to combine
Let simmer for a few minutes longer until the chicken is warmed through and the parmesan is fully incorporated
Serve the soup topped with green onions, extra Parmesan if desired.