In a large heavy bottomed pot, fry the bacon until crispy. 5-8 minutes. Set bacon on a paper towel to drain. Wipe out most of the bacon grease from the pot, leaving about 1 tsp.
Meanwhile, cut the kernels off the stalks and reserve the stalks. Use the kernels from about 3 of the stalks in the soup, reserving the last kernels for topping.
Add the garlic and onion to the pot with the bacon grease on medium heat. Cook for about 3-5 minutes until onions have softened.
Add the corn and flour to the pot and stir until everything is well combined.
Put the potatoes into the pot with the reserved corn stalks, paprika, cayenne, salt, pepper and bay leaf. Pour broth over everything and stir. Cover and let cook over a low boil for about 15 minutes until potatoes are tender.
Remove corn stalks and discard. Using an emersion blender, blend about half of the soup. Alternatively, remove about half of the soup and blend in a blender until smooth and add back to pot.
Remove soup from heat and stir in cream. Taste and add salt if needed.
Divide into bowls and serve with crumbled bacon, green onions and fresh corn kernals on top.