Lave e descasque as batatas; corte-as em meias-luas, seque-as e frite-as em óleo quente. Tempere com sal e pimenta.
Leve uma panela com água ao lume; quando ferver adicione o bacalhau, deixe levantar fervura, retire, escorra e deixe arrefecer ligeiramente.
Remova pele e espinhas do bacalhau, corte em pedaços e passe-os por farinha.
Aqueça óleo e frite rapidamente o bacalhau até dourar levemente; escorra sobre papel absorvente.
Pique as cebolas e os alhos; aqueça o azeite e refogue-os com a folha de louro até a cebola ficar translúcida. Elimine o louro.
Disponha numa assadeira uma camada de batatas, cubra com o bacalhau e regue com a cebolada.
Aqueça o forno a 180 °C. Dissolva a farinha no leite, junte os ovos, o vinho do Porto e a mostarda; bata até obter um creme homogéneo.
Regue o conteúdo da assadeira com o molho e leve ao forno até a superfície alourar. Sirva de imediato.