Preheat the oven: Set your oven to 375°F (190°C).
Lightly grease a 9x13-inch baking dish.
Prep the cabbage: Remove the tough core and chop the cabbage into bite-size pieces. You want medium pieces, not too fine, so they hold up during baking.
Brown the meat: Heat a large skillet over medium-high. Add 1 tablespoon oil, then the ground beef.
Break it up with a spatula and cook until browned. Season with a pinch of salt and pepper. Drain excess fat if needed and set the meat aside.
Sauté the aromatics: In the same skillet, add the remaining oil and the onion.
Cook 3–4 minutes until softened. Add the garlic and cook 30 seconds until fragrant.
Soften the cabbage: Add the chopped cabbage to the skillet with the onion and garlic. Toss well and cook 5–7 minutes, stirring occasionally, until it begins to wilt.
Season with the salt, pepper, paprika, oregano, and red pepper flakes.
Build the sauce: Stir in the diced tomatoes, tomato sauce, and broth. Bring to a gentle simmer and cook 3–4 minutes to let the flavors come together.
Add the creaminess: Reduce heat to low and add the cream cheese cubes. Stir until the cheese melts into the sauce and the mixture looks creamy and slightly thickened.
Taste and adjust seasoning.
Combine with meat: Return the browned beef to the skillet and fold everything together. The mixture should be saucy but not soupy.
Assemble the casserole: Transfer half of the mixture to the baking dish. Sprinkle with half the mozzarella.
Add the remaining mixture and top with the rest of the mozzarella plus the cheddar.
Bake: Place in the oven for 18–22 minutes, until the casserole is bubbling at the edges and the cheese is melted and lightly golden.
Rest and serve: Let it rest for 5–10 minutes so it sets slightly. Garnish with chopped parsley or chives and serve warm.