Prep the vegetables. Peel and chop the carrots and sweet potato into small pieces so they cook quickly. Dice the onion, bell pepper, and zucchini.
Mince the garlic.
Sauté the aromatics. Warm olive oil in a large pot over medium heat. Add onion with a pinch of salt and cook 4–5 minutes until soft and lightly golden. Stir in garlic for 30 seconds, just until fragrant.
Add the veggies. Tip in carrots, sweet potato, bell pepper, and zucchini.
Cook 5–7 minutes, stirring, until edges start to soften and caramelize. This step adds sweetness and removes any raw taste.
Season and simmer. Sprinkle in oregano, basil, and paprika. Pour in tomato passata and broth.
Stir well, bring to a gentle simmer, then cover and cook 15–20 minutes, until all vegetables are tender.
Blend until silky. Remove from heat. Use an immersion blender to purée until completely smooth. If using a countertop blender, work in batches and vent the lid.
The goal is a totally smooth sauce with no visible chunks.
Add creaminess. Return sauce to low heat. Stir in milk or coconut milk, Parmesan, and butter if using. Simmer 2–3 minutes.
Taste and adjust salt and pepper lightly. If it tastes tangy, add a tiny pinch of sugar or an extra splash of milk.
Cook the pasta. While the sauce simmers, boil pasta in salted water until just tender. For toddlers, cook 1–2 minutes longer for a softer bite.
Reserve 1/2 cup pasta water before draining.
Combine and serve. Toss pasta with enough sauce to coat well, using a splash of pasta water to loosen if needed. Top with a sprinkle of Parmesan for older kids and adults.
Cool for little mouths. Let the pasta sit for a couple of minutes before serving to toddlers. Serve warm, not hot.