Heat olive oil in a large pot over medium heat. Add the sausage and cook, stirring and breaking it up until browned, about 5 minutes.
Stir in the onions and cook until softened, about 6 minutes.
Add the garlic, oregano, and red pepper flakes, sautéing until fragrant, about 1 minute.
Mix in the tomato paste and cook for 3–4 minutes until it turns a rich brick-red color.
Pour in the chicken stock and fire-roasted diced tomatoes. Toss in the bay leaves. Bring to a boil.
Lower the heat and let the soup simmer for 30 minutes to develop its rich flavor.
Add the rotini and cook until al dente, about 8 minutes. Stir in fresh basil and adjust seasoning with salt and pepper.
In a small bowl, combine ricotta cheese, Parmesan cheese, ¼ teaspoon salt, and a pinch of black pepper.
To serve, spoon a generous dollop of ricotta mixture into each bowl. Sprinkle mozzarella on top, then ladle steaming soup over it. Serve immediately!