In a large Dutch oven, cook bacon over medium heat until browned and crispy, about 7-10 minutes. Remove bacon to a paper towel-lined plate. You should have about 3 tablespoons of drippings in the pot.
Add 1 tablespoon of butter (or enough to total ¼ cup when combined with the drippings in the pot). Heat until the butter melts. Add the carrots, onion and celery and cook, stirring frequently, until the onions are translucent – about 6-8 minutes. Add the garlic and cook, stirring constantly, for 1 more minute.
Add flour; cook for 2 minutes, stirring constantly. Gradually add chicken broth, stirring to combine.
Add rosemary, thyme, parsley, bay leaf, salt and pepper, mushrooms and potatoes. Bring to a boil; reduce heat to low and simmer, uncovered, until the potatoes and vegetables are just about tender, 10-15 minutes.
Add milk and gently simmer over low heat for about 5 minutes (do not boil).
Stir in the corn, peas and cheese. Cook, stirring constantly, until the cheese melts and the peas and carrots are heated through, about 5 more minutes. Discard the bay leaf; taste and season with additional salt and pepper, if necessary. If there is a good amount of fat that rises to the top of the soup, you can skim it off with a spoon and discard the extra fat, or give the pot a good stir just before serving.
Ladle soup into bowls; garnish with reserved bacon and additional fresh herbs.