Bring a large pot of salted water to a boil. While waiting for the boil, cut the cherry tomatoes in half, lightly toast the fennel seeds in a dry pan and peel and finely chop the garlic cloves. Add the spaghetti to the pot of boiling water and cook for eight to ten minutes, until still a bit crisp. While cooking, you can prepare the sauce. Grate half the parmesan and set aside. You will use the rest just before serving. I use a vegetable peeler to shave off the rest of the parmesan into curls that taste great and look great on the finished dish. You can do this just before serving it.
Heat a heavy-bottomed skillet over high heat, add the olive oil and when hot and shimmering, the crushed cherry tomatoes. Lower the heat to medium and cook the tomatoes for three to four minutes until they soften and start to break down a bit. Add the minced garlic and cook for another minute or two. Lightly crush the fennel seeds in a mortar and pestle or spice grinder, and mix them well. Add lemon juice and a good grind of black pepper. Take about half of the basil leaves and set them aside. Chop the rest of the basil, including the stems, and stir the chopped herbs into the sauce. Cut the nduja and add it to the pan. Stir it in keeping the heat low, you just want to simmer the sauce for the nduja to cook.
By now your spaghetti should be almost cooked, so dip a cup into the pot and scoop out some of the starchy water from the pasta and set it aside.
Add the cream cheese to the sauce and stir until well blended. Check your pasta now, it should be ready. Drain it and put it back in the pan. Add a little olive oil and toss the pasta to prevent it from sticking. Add the grated Parmesan cheese to the sauce, stir it in and if it gets a little too thick, add some of the reserved pasta water to the pot, stirring until you get the right consistency. Taste the sauce and now add more salt if needed. Toss the spaghetti into the sauce and serve in bowls or pasta plates, with the remaining basil leaves and Parmesan shavings scattered on top.