Warm the pan: Heat the oil in a large skillet over medium-high heat. Choose a pan wide enough to hold the cauliflower in a mostly single layer.
Brown the beef: Add the ground beef and break it up with a spatula. Cook until it’s well browned with crisp edges, about 6–8 minutes. Don’t rush this step; good browning builds deep flavor.
Season early: Stir in 1/2 teaspoon salt and the black pepper.
Push the beef to one side of the skillet and tilt to spoon off excess fat if needed, leaving about a tablespoon in the pan.
Sauté aromatics: Add the diced onion to the empty side. Cook 3–4 minutes until translucent and slightly golden. Stir in the garlic and cook 30 seconds, just until fragrant.
Add spices: Sprinkle in the smoked paprika, oregano, cumin, and chili powder if using.
Toss with the beef and onions so the spices bloom in the fat.
Soften the cauliflower: Add the cauliflower florets and stir to coat in the seasoned mixture. Pour in the beef broth, then cover and reduce heat to medium. Steam-cook for 5–7 minutes, stirring once, until the florets are fork-tender but not mushy.
Uncover and reduce: Remove the lid and let any excess liquid simmer off for 1–2 minutes.
Taste and adjust salt if needed.
Make it cheesy: Sprinkle the cheddar and mozzarella evenly over the skillet. Reduce heat to low, cover, and let the cheese melt for 2–3 minutes. For browned spots, broil the skillet (oven-safe only) for 1–2 minutes.
Finish and serve: Scatter chopped parsley or green onions on top.
Serve hot straight from the skillet. If you want extra richness, swirl in a spoonful of sour cream at the table.