Bring a large pot of salted water to boil. Add spaghetti. Cook until al dente, for about 9-10 minutes. Reserve 1 cup pasta water. Drain. Set aside.
Preheat oven to 200 C / 400 F. Line a baking tray with baking paper.
To make meatballs, combine together minced (ground) meat, garlic, egg, breadcrumbs, parmesan and basil in a large bowl. Season with salt and pepper. Roll into small lemon sized balls, approximately 20. Arrange on a baking tray in a single layer. Lightly spray with cooking spray. Bake for about 25-30 minutes or until cooked through. (Altrenatively, you can fry the meatballs)
To make the sauce, heat oil in a large frying pan or skillet over medium-high heat. Add garlic. Sauté, stirring occasionally, for about a minute or until fragrant. Add onions. Sauté, stirring occasionally, for about 2-3 minutes or until soft and translucent. Add bay leaf and tomato passata. Stir to combine. Season with salt and pepper. Simmer for about 5-6 minutes. If the sauce is too thick, add a little pasta water. Add cooked meatballs. Simmer for another 3-4 minutes. Stir in chopped basil.
To serve, divide spaghetti among serving bowls. Top with meatballs. Garnish with grated parmesan and basil.