Kosher salt and freshly ground black pepper, to taste
Preheat oven to 350°F.
In a medium bowl, season ground beef with salt, pepper, Italian seasoning and garlic powder. Using your hands, mix well until combined.
Using 1/4 of the meat mixture and 1/4 of the uncooked spaghetti, gather spaghetti into a bundle and pack meat around the middle of the pasta, leaving ends exposed. Press meat to hold bundle together. Repeat 3 times with remaining pasta and meat.
Drizzle some olive oil into a large baking dish and heat on the stovetop over medium-high heat.
Once hot, brown meat on both sides, then scatter onions, garlic, mushrooms, and basil around the spaghetti bundles. Top with red wine and let reduce 1-2 minutes.
Pour tomato sauce over everything, making sure pasta is covered. Top with mozzarella, cover with foil and let bake until pasta is tender, about 45 minutes.
Uncover and cook until cheese is golden brown. Let rest 5 minutes before serving.