The usual procedure for gTLDs: unlock the domain at the current registrar (remove clientTransferProhibited), request the auth code, start the transfer at the new registrar and enter the code. The registry marks the domain pendingTransfer, and the losing registrar has five days to object; if it does not, the transfer completes. A gTLD transfer normally adds one year to the registration.
Under the long-standing ICANN transfer policy, transfers are blocked for 60 days after a new registration and after a previous transfer, and many registrars apply a similar lock after a change of registrant. A domain that has already expired can often still be transferred during the auto-renew grace period, but policies differ, so it is safer to transfer well before the expiry date.
Moving registrar does not by itself change nameservers. But if the domain uses the old registrar's DNS hosting, that service usually ends with the transfer: copy the zone to a DNS host that will survive the move before you start. Country-code TLDs each have their own transfer procedure.