Using a Dutch oven or sauce pot, melt butter over medium heat and add onion. Sauté for about 3-4 minutes until transparent. Stir in garlic and cook until fragrant, about 30 seconds.
Add asparagus, stock, rosemary, salt and pepper. Bring to a boil then reduce to medium-low heat and simmer for 10-15 minutes with lid on, until the asparagus are tender. For garnishing, remove a few tips halfway through the cooking process. Place in cold ice water to stop them from cooking and maintain it's colour.
Add spinach and once spinach is softened, blend the soup with immersion blender and puree until completely smooth. Careful to avoid any spatter. Stir in cream and lemon juice. Adjust seasoning at this time.
Garnish with crispy bacon, asparagus tips, rosemary and parsley. Dollops of Greek yogurt or heavy cream if desired.