Cook the diced bacon in a 30 cm / 12-inch skillet over medium heat for 5 to 6 minutes, stirring occasionally, until crisp. Lift it out with a slotted spoon and set aside, leaving the fat in the pan.
Add the sliced onion to the bacon fat and cook for 6 to 8 minutes, stirring now and then, until soft and golden at the edges.
Stir in the garlic and cook for 30 seconds until fragrant.
Add half the shredded cabbage and toss to coat in the fat. Let it wilt for 2 to 3 minutes before adding the rest of the cabbage, since dumping it all in at once steams the pile instead of browning it.
Add the butter, chicken broth, smoked paprika, salt, black pepper, and red pepper flakes if using. Cover and cook for 15 to 18 minutes, stirring every few minutes, until the cabbage is tender.
Uncover and raise the heat to medium-high. Cook for 3 to 4 minutes more, stirring often, until most of the liquid has evaporated and the cabbage edges turn golden brown.
Stir the reserved bacon and cider vinegar back into the pan. Taste and add more salt if needed.
Spoon the warm rice into bowls, top with the fried cabbage and onions, and scatter with sliced green onions.