Heat a large Dutch oven over medium-high heat.
Preheat the oven to 350ºF.
Add 4 tablespoons of butter and ham and sauté until lightly browned.
Add the onion, carrot, celery, and garlic. and sauté until the vegetables are turning translucent.
Stir in the flour to make a roux and cook, stirring often for 2-3 minutes.
Add the beer, whisking constantly, then immediately add the half and half and chicken stock while continuing to whisk to avoid lumps.
Add the Worcestershire, Dijon, bay leaves, and cayenne and bring to a simmer, whisking frequently.
Simmer the soup for about 20 minutes.
While the soup is cooking, melt the remaining 3 tablespoons of butter and toss with pumpernickel cubes and garlic salt.
Bake on a lined baking sheet for about 10 minutes, stirring occasionally, until crisp.
Remove the croutons from the oven and let them cool.
When the soup is done simmering, whisk in the cheese until melted and thoroughly combined.
Remove the soup from the heat and take out the bay leaves. Ladle soup into bowls and garnish with the croutons and scallions. Serve immediately.