Preheat the oven to 400°F (200°C). Begin making the tomato sauce: heat the oil in a saucepan over medium heat, then add the celery, onion, carrot, and garlic. Cook gently for 3–5 minutes, stirring occasionally, until all the vegetables have softened.
Stir in the stock, tomatoes, and tomato paste, mixing everything together well. Season with salt and pepper, then bring the mixture to a boil.
Once boiling, reduce the heat, cover the pan, and let the sauce simmer gently for 30 minutes, stirring occasionally, until it has thickened and the flavors have melded together.
While the sauce is simmering, prepare the filling: heat the oil in a large pan, add the onion and garlic, and cook for 3–5 minutes until they’ve softened and become translucent.
Add the spinach to the pan and cook over high heat for 1–2 minutes, stirring constantly, until it wilts down completely. Remove from the heat and let it cool slightly.
Once cooled, stir in the ricotta cheese and a pinch of nutmeg, mixing until well combined. Season the filling with salt and pepper to taste.
Transfer the tomato sauce to a food processor and blend until smooth and silky. Pour the puréed sauce back into a bowl and stir in the chopped sun-dried tomatoes for extra flavor.
Lightly grease an ovenproof baking dish. Carefully spoon the spinach and ricotta filling into each cannelloni tube, packing it in gently but firmly.
Arrange the filled cannelloni in a single layer in the prepared dish. Pour the tomato sauce evenly over the top, ensuring all the pasta is covered, then sprinkle generously with grated Parmesan cheese.
Bake in the preheated oven for 30 minutes until the top is golden and bubbling. Remove from the oven and let it rest for a few minutes, then serve hot with extra freshly grated Parmesan cheese sprinkled over the top.