Cook the bacon in a large pot over medium heat until it renders and is mostly crisp. About 7-8 minutes. Remove from the pan with a slotted spoon.
Add the butter to the bacon drippings and melt.
Add the onion and cook until just softened, about 5 minutes.
Add the potatoes, garlic, and bay leaf and stir well.
Pour in the stock just to cover the potatoes and ONE cup of milk.
Add salt and pepper.
Bring to a boil uncovered and cook until the potatoes are tender. About 20 minutes depending on their size.
Turn off heat, and with a potato masher by hand, or a fork, smash the potatoes until all large chunks are gone, or leave a few if you like it that way.
Add the parsley.
If you want to add chicken or extra veggies, do it now.
Add the final cup of milk and the cheese and return to medium heat until the cheese melts and the soup is heated through. Another 5 to 6 minutes.
Remove the bay leaf if you can find it.
Serve warm with crusty rolls and garnish with crumbled bacon, green onions, and cheese if desired.
Reheats well and freezes great too!