Preheat and prep. Heat the oven to 375°F (190°C). Lightly oil a 9x13-inch baking dish or similar casserole.
Sauté aromatics. Warm the olive oil in a large skillet over medium heat.
Add the diced onion and cook 3–4 minutes until soft. Stir in the garlic and cook 30 seconds until fragrant.
Brown the beef. Add the ground beef, breaking it up with a spatula. Season with salt, pepper, and Italian seasoning.
Cook until no pink remains, about 6–8 minutes. If there’s excess fat, drain it.
Build the sauce. Stir in crushed tomatoes (or marinara), tomato paste if using, and red pepper flakes. Simmer 5–7 minutes to thicken slightly.
Taste and adjust salt and pepper.
Mix the creamy layer. In a bowl, combine cottage cheese (or ricotta), egg, Parmesan, a pinch of salt, and half the chopped basil or parsley. Stir until smooth.
Assemble the bake. Spread half of the beef sauce in the baking dish. Dollop and gently spread the creamy mixture over the sauce.
Sprinkle on half of the mozzarella. Top with the remaining beef sauce, then finish with the remaining mozzarella and a shower of Parmesan.
Bake. Cover loosely with foil (tent it so it doesn’t stick to the cheese) and bake for 15 minutes. Remove the foil and bake another 10–15 minutes, until the cheese is melted, bubbly, and lightly golden.
Rest and garnish. Let the casserole rest 8–10 minutes so it sets.
Top with the remaining basil or parsley.
Serve. Spoon into bowls or slice into squares. Add a simple side salad or steamed green beans to round things out.