Comece por cozer o bacalhau em água a ferver com uma folha de louro, durante cerca de 10 minutos, ou até que se solte em lascas. Escorra o bacalhau e reserve a água da cozedura.
Descasque e corte as batatas em pedaços e coza-as na mesma água do bacalhau, até que fiquem macias.
Escorra as batatas e esmague-as com um esmagador ou um garfo, até obter um puré.
Adicione o leite, a manteiga, sal, pimenta e noz-moscada e mexa bem, até obter um puré cremoso e homogéneo.
Descasque e pique as cebolas e os alhos e refogue-os numa frigideira com o azeite, até que fiquem macios e dourados.
Tempere com sal, pimenta e salsa picada e reserve.
Num tabuleiro de ir ao forno, untado com um pouco de azeite, disponha as postas de bacalhau e cubra-as com o refogado de cebola e alho.
Espalhe colheradas de puré de batata em volta do bacalhau e alise com uma espátula.
Por cima do bacalhau, espalhe a maionese, formando uma camada uniforme.
Leve o tabuleiro ao forno pré-aquecido a 180ºC, durante cerca de 20 minutos.
Retire o tabuleiro do forno e sirva.