Brown the beef: Set a large skillet over medium-high heat. Add the ground beef and cook, breaking it up with a spatula, until browned and no longer pink, about 5–7 minutes.
If there’s more than a tablespoon of fat, drain the excess.
Sauté aromatics: Add the diced onion to the skillet. Cook until softened, 3–4 minutes. Stir in the minced garlic and cook 30 seconds, until fragrant.
If the pan looks dry, add a splash of olive oil or a pat of butter.
Season well: Sprinkle in the salt, pepper, onion powder, smoked paprika, and thyme. Stir to coat the beef and onions evenly.
Add broccoli: Stir in the broccoli florets. For fresh broccoli, add 2–3 tablespoons of water, cover, and steam for 3–4 minutes until crisp-tender.
For frozen broccoli, add directly to the pan and cook uncovered, stirring often, until heated through and bright green.
Build the sauce: Stir in the tomato paste (if using) and cook 1 minute. Add the Worcestershire sauce and beef broth. Scrape up any browned bits from the bottom of the skillet.
Let it simmer for 2 minutes to reduce slightly.
Make it creamy: Reduce heat to medium-low. Pour in the heavy cream and stir until the sauce looks cohesive and lightly thickened, about 1–2 minutes. Taste and adjust salt and pepper.
Add the cheese: Sprinkle in the cheddar and mozzarella in small handfuls, stirring between each addition until melted and smooth.
If you like a stretchier finish, save a little mozzarella for topping.
Finish and serve: If using red pepper flakes, add a pinch for gentle heat. Let the skillet rest for 1–2 minutes to thicken slightly. Garnish with parsley or green onions.
Serve hot as-is, or spoon over rice, cauliflower rice, or buttered noodles.