In a large skillet, melt the butter over medium-high heat. Add the bacon and cook until the fat is rendered and the bacon is crisp, about 7 minutes. Remove the bacon with a slotted spoon, drain on paper towels, and set aside for garnish.
To the fat remaining in the pan, add the yellow, red, and white onions, shallots, salt, pepper, bay leaf, and thyme and cook, stirring, until very soft and starting to caramelize, 8 to 10 minutes. Add the leeks and scallions and cook until soft, 3 to 4 minutes. Dust flour over, and stir and cook until flour turns light golden. Add the stock and bring to a boil. Reduce the heat and simmer uncovered for 45 minutes, stirring occasionally. Add the cream, stir well to incorporate, and cook for 15 minutes.
Remove the bay leaf and pulse soup with an immersion blender. Return to the pot, stir to combine, and heat gently.
Divide the soup into bowls and garnish each serving with bacon, chives, and a little shaved Parmesan. Serve slices of the Parmesan-Garlic bread on the side and serve immediately.
Preheat the oven to 350 degrees F. Line a large baking sheet with aluminum foil and set aside.
Cream the butter, garlic, parsley, chives, salt, pepper, and half of the cheese in a small bowl using a wooden spoon or rubber spatula. Spread both halves of the bread evenly with the garlic butter and top with the remaining grated cheese. Place the bread halves on the prepared baking sheet, cut sides up, and bake until fragrant and lightly golden around the edges, 12 to 15 minutes. (Alternatively, broil until golden brown, 1 to 2 minutes.) Cut crosswise on the diagonal into1 1/2-inch slices. Serve hot.