Preconditioning for saddle point problems

Hello everyone, I am trying to modify the demo for solving the incompressible NS equation (Divergence conforming discontinuous Galerkin method for the Navier–Stokes equations — DOLFINx 0.8.0.0 documentation) to solve a 3D problem. In the demo, the MUMPS solver is used.
If I want to use GMRES, I would need a good preconditioner. Additionally, this is a saddle point problem( \begin{pmatrix} M-\nu \Delta t L & D^{T} \\ D & O \end{pmatrix}, where M is the mass matrix, L is the discrete vector Laplacian ).
Can anyone recommend an efficient preconditioner or another solver?