Preheat the oven to 350°F. Cook the pasta according to the package directions until al dente, then drain.
Heat the olive oil in a large frying pan over medium-high heat. Add the onion and garlic and sauté for 2-3 minutes, being careful not to brown the garlic. Add the ground lamb, breaking up any lumps with a spoon. Cook until the lamb is browned.
Add the bay leaves, cinnamon, cloves, and a splash of red wine. Reduce the heat to a simmer, add the tomatoes, and stir to combine. Cook for 25 minutes, then season with salt and pepper.
Add the cooked pasta to the pan and mix it through the meat sauce.
To prepare the béchamel sauce, combine the milk, cloves, bay leaf and peppercorns in a saucepan. Place over low to medium heat, allowing the milk to slowly come to a boil so it can infuse with the flavors. Remove from the heat immediately.
In another saucepan, melt the butter over low heat. Once melted, add the flour and stir with a wooden spoon until combined. Continue cooking for 5 minutes, stirring constantly to prevent browning.
Strain the infused milk and gradually add it to the butter and flour mixture, stirring continuously to prevent lumps. Cook and stir until the sauce thickens, about 4-5 minutes. Stir in the grated Parmesan cheese.
In an ovenproof rectangular dish, spread the pasta and meat sauce evenly, pressing it down to flatten. Pour the prepared béchamel over the top and sprinkle with breadcrumbs. Bake for 20-25 minutes, or until golden brown and bubbling.
