For 1 you need to
place a first inductor L1 with inductance value
place a second inductor L2 with inductance value
Now the non-intuitive, somewhat strange step:
place another symbol (perhaps not an inductor), but a resistor for example (R1). Attach the “Mutual Inductance Statement” model to this symbol. Choose the inductors for coupling from the drop-down list in the “Value” column. Add the coupling coefficient.
If you look at the resulting ngspice netlist (Inspect->Simulator->Simulation->Show Spice Netlist), you will see that R1 is not part of the netlist, but a “coupling statement” KR1.
I would never use your second approach. It is error prone, and if the developers ever had thought about adding a whole model directly to the symbol, it is implemented incompletely and unsafe.
My favorite is the third approach. Putting a model, as complex as it may be, into a subcircuit, then into a file, and attach it to a transformer symbol, as you attach any (vendor provided) behavioral model to a symbol. You may then make use of the various transformer models supported by ngspice (see ngspice / ngspice / [cf9b88] /examples/various/transformers1.cir).
You may put relevant parameters onto the .subckt line of the model and display them on the Eeschema canvas (see How to use in Kicad a model from ngspice manual? - #3 by holger) for editing them easily.