Cook spaghetti according to package directions. Reserve 1/2 cup pasta water before draining. Set aside.
In a large skillet over medium-high heat, melt butter. Add onion and cook 3–4 minutes until softened.
Add garlic and cook 1 minute until fragrant.
Add ground beef. Season with Italian seasoning, oregano, basil, garlic powder, salt, and pepper. Cook, breaking apart, until browned with caramelized edges, about 8–10 minutes. Do not drain.
Reduce heat to medium-low. Push beef to the sides and add heavy cream and cream cheese to the center. Stir cream cheese until fully melted into the cream, about 2–3 minutes.
Stir in sharp cheddar, mozzarella, and Parmesan. Mix until fully melted and sauce is glossy and thick.
Add cooked spaghetti to the skillet. Toss everything together, adding reserved pasta water a little at a time until sauce clings to every strand.
Transfer to a serving dish or keep in skillet. Top generously with extra shredded mozzarella and cheddar. Cover 2 minutes to melt, or broil 2–3 minutes until bubbly.
Garnish with chopped fresh parsley and serve immediately.