Heat the olive oil in a large saucepan and add the pancetta and brown.
Dice the carrot, celery, garlic and 1 of the onions.
Add the beef and brown well.
Squeeze the tomato purée into the pan and coat everything.
Then pour in the wine and Worcestershire sauce.
Let the liquid bubble for a few minutes before adding the chopped tomatoes and the stock.
Bring to the boil, then turn down to a gentle simmer for at least an hour to allow the mixture to reduce.
Halve the other onion and stud with the cloves.
Heat the milk in a saucepan with the studded onion and bay leaves.
Melt the butter in another medium sized saucepan.
Beat in the flour and cook for a minute (making a roux).
Pour in the strained, infused milk slowly, whisking constantly. Only add more milk once the last has been fully incorporated and is lump free.
Preheat the oven to 180°C.
Spread the meat sauce over the bottom of a rectangle baking dish.
Cover the layer with lasagne sheets, snapping them where needed to fit the dish.
Spoon over a little white sauce and top with torn pieces of mozzarella, grated Parmesan and a few torn basil leaves.
Repeat, finishing with a top layer of lasagne sheets.
Scatter over a final layer of only cheese, then place in the oven for 30 minutes.
Serve with some salad and garlic bread!