Heat butter in a small pan over medium heat. Cook onion and celery until tender, about 3 minutes.
Wash and chop the broccoli and place in the slow cooker. Add cooked onion, garlic powder, bay leaf, chicken broth, cream cheese and salt & pepper to taste.
Cook on low 6-7 hours (or high 3-4 hours) or until broccoli is tender. Add evaporated milk and cook 30-60 minutes more. Discard bay leaf.
Remove one cup of broccoli and coarsely chop. Puree remaining soup using a hand blender. (You can puree a bit to break up the broccoli or until completely smooth depending on preference).
Add chopped broccoli back into the soup. Stir in all of the cheeses until melted.
Garnish with additional shredded cheeses, or 1/2 tsp of pesto sauce.
(Nutrition information provided is an estimate and will vary based on cooking methods and brands of ingredients used.)