Melt butter in a large skillet over very low heat. Add the onions, sprinkle with salt and stir. Cover the skillet and let the onions cook very slowly until they have wilted completely, about 20 minutes. Remove the lid, stir the onions and let them cook another 20 minutes or so, stirring regularly until they become a deep caramel brown.
Add white wine and turn the heat up to high. Let the wine boil until it is reduced to a syrup. Add the broth and cider, bring to a simmer, add pepper. Cover and keep it hot while you prepare the bread.
Preheat the oven to 400 degrees F.
Slice about 1 inch off the top of each roll and pull out the inside bread, making a bowl. Save the bread tops and inside for another use (crumbs or croutons). Set the rolls on a sheet pan and bake them for 5 minutes, until crispy and hot.
Preheat the broiler. Have 4 shallow soup bowls ready.
Ladle ¾ cup soup into each bread bowl and divide the gruyere among them, covering the edges of the bread. Broil until the cheese bubbles and browns, about 45 seconds. Be careful not to burn the bread.
Lift each bread bowl with a spatula and set it into a soup bowl. Ladle the remaining soup around the bread and serve immediately.