Heat oil in a large pan; add the finely chopped onion, carrot, mushrooms, bacon, crushed garlic and celery (saving a couple of slices of onion, carrot and celery for bechamel sauce). Fry while stirring for 1-2 minutes; add the beef and cook over high heat for further 2 minutes.
Stir in tomatoes and juices, tomato puree, wine, beef stock, 1 bay leaf, and seasoning. Bring to boil; reduce the heat to a simmer cover and cook for 35 minutes.
meanwhile put the milk into a pan,add the saved slices of onion,carrot,celery,6 peppercorns and other bayleaf,bring slowly to the boil,then remove from the heat cover and leave to infuse for 15 minutes.
Make the bechamel sauce.
Strain infused milk into a jug. Melt butter in a saucepan; add the flour and cook over a low heat stirring with a wooden spoon for 2 minutes. Remove from heat and gradually blend in the milk to prevent lumps. Bring to boil slowly stirring all the time until it thickens; season.
Brush baking dish with butter. Spoon 1/3 of meat sauce into dish, cover with 4 or so sheets of lasagne, then 1 third of bechamel sauce. Repeat twice more. Sprinkle top with parmesan.