In a large pot or Dutch oven, melt the butter on medium-high heat, then add all of the cabbage and onions. Stir all around with a pinch of salt, crank the heat to high, and cook for about ten minutes, until everything’s wilted down and the onions and cabbage are starting to color. (One way to speed the process is to put the lid on the pot for a few minutes; that’ll encourage wilting.)
As soon as you see a little color, lower the heat all the way and let the onions and cabbage cook for at least an hour, until everything is a deep, profound golden brown. This is a game of chicken: just when you think it can’t go any farther, you’ll want to let it keep cooking. The goal is to get everything as caramelized as you can get without scorching.
As soon as the onions and cabbage are cooked to your liking, add the tablespoon of flour, stir all around, and cook for one minute to get rid of that raw flour taste. Add the stock, crank the heat to high, add another pinch of salt, stir all around, and bring to a boil. Lower to a simmer and cook for ten to twenty minutes, until all of the flavors are combined and the soup is thickened slightly. Taste here for salt. Then add a splash of Balsamic (at least one tablespoon) and a few dashes of Tabasco, stir, and taste again. Keep playing around until it tastes incredible, then set aside.
Turn on the broiler. Place the sourdough on a cookie sheet, place under the broiler, and carefully broil until golden brown. Flip until a little less brown on the other side. Remove from the oven and on the less-brown side, pile on the cheese. Stick back under the broiler and broil until the cheese is bubbly and melted and starting to char in spots.
To serve: ladle the soup into bowls, top with the cheesy bread, and sprinkle with Aleppo pepper. You could also add minced chives, if you have those. I didn’t!