Melt butter or oil in a large stockpot over medium-high heat. Add onion and sauté for 4 minutes, stirring occasionally. Add carrots, celery and garlic and sauté for 3 more minutes, stirring occasionally. Add in the flour and sauté for 1 more minute, stirring frequently.
Gradually pour in the chicken stock, stirring the soup frequently as you pour so that the clumps of flour can melt into the broth. Add the chicken breasts, mushrooms, wild rice, rosemary, bay leaves and stir to combine.
Let the soup continue cooking until it reaches a simmer. Then reduce heat to medium-low to maintain the simmer, cover, and cook for 40-45 minutes or until the wild rice is tender — being sure to stir the soup every 5-7 minutes so that the bottom of the pot does not burn.
Use tongs to carefully transfer the chicken breasts to a clean plate. Then you can either dice or use two forks to shred the chicken into bite-sized pieces, and stir it back into the soup.
Stir in the milk and baby spinach until combined. Simmer for about 5-10 more minutes.
Remove and discard the bay leaves. Taste and season the soup with however much salt and black pepper you think it needs.
Serve warm and enjoy!