Heat olive oil in a large pot over medium heat, then add chopped onions and sauté until translucent and fragrant, about 3-4 minutes.
Add minced garlic and cook for another 30 seconds until it becomes aromatic, stirring frequently.
Raise the heat slightly and add the ground beef, breaking it apart with a spoon, cooking until browned and no longer pink, about 6-8 minutes.
Stir in crushed tomatoes and broth, bringing the mixture to a gentle boil, then reduce heat to low and let simmer for 10 minutes to develop flavors.
Add the uncooked pasta noodles, stirring to prevent sticking, then cover the pot partially and cook for 8-10 minutes until the noodles are tender.
Once the pasta is cooked, stir in shredded mozzarella and grated Parmesan cheese, allowing the cheese to melt and create a creamy top layer.
Season with salt and pepper to taste, then ladle the hot soup into bowls, garnishing with fresh herbs.