Prep the vegetables. Core the cabbage and slice it thin. Slice onions, mince garlic, and grate the carrot.
Drain and rinse the beans.
Brown the onions. Heat olive oil in a large, wide skillet or Dutch oven over medium heat. Add onions and a pinch of salt. Cook 8–10 minutes, stirring occasionally, until softened and lightly golden.
Add garlic and spices. Stir in garlic, smoked paprika, thyme, cumin, and red pepper flakes if using.
Cook 30–60 seconds, just until fragrant.
Load in the cabbage. Add cabbage and carrot. It will look like a lot, but it wilts down. Toss to coat in the oil and spices.
Cook 5–7 minutes, stirring, until the cabbage begins to soften and shrink.
Season and deglaze. Add soy sauce and vegetable broth. Scrape up any browned bits from the pan. Reduce heat to medium-low, cover, and simmer 8–10 minutes, stirring once or twice.
Stir in the beans. Add cannellini beans and cook uncovered for 3–5 minutes to warm through and thicken slightly.
The mixture should be juicy but not soupy.
Finish with acid and herbs. Turn off the heat. Stir in apple cider vinegar and a handful of chopped parsley or dill. Taste and adjust with salt, pepper, or more vinegar.
Garnish and serve. Sprinkle with toasted seeds or nuts for crunch.
Serve on its own, over cooked grains, or with crusty bread. Add a dollop of yogurt if you like.