Using mouse for realistic Top-Down space ship yaw control

I’ve ran into a problem with the 3D Top-Down spaceship controls
I’m using a movement script that allows my ship to move with realistic motion, with velocity drag, rotation drag.
Problem is the ship rotates with the A and D keys by using Input.GetAxis(“Horizontal”), I want the ship to rotate towards the mouse cursor with realistic drag and not snapping to it quickly. How do I write a script for this?

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{ 
    public float maxSpeed = 100;

    public float maxRotationSpeed = 100;

    public float verticalInputAcceleration = 1;

    public float horizontalInputAcceleration = 20;

    public float velocityDrag = 1;

    public float rotationDrag = 1;

    private Vector3 velocity;
    private float zRotationVelocity;

   



    // Update is called once per frame
    void Update()
    {
        // apply forward input
        Vector3 acceleration = Input.GetAxis("Vertical") * verticalInputAcceleration * transform.forward;
        velocity = velocity + acceleration * Time.deltaTime;

        // apply turn input
        float zTurnAcceleration = 1 * Input.GetAxis("Horizontal") * horizontalInputAcceleration;
        zRotationVelocity = zRotationVelocity + zTurnAcceleration * Time.deltaTime;
    }
    private void FixedUpdate()
    {
        // apply velocity drag
        velocity = velocity * (1 - Time.deltaTime * velocityDrag);

        // clamp to maxSpeed
        velocity = Vector3.ClampMagnitude(velocity, maxSpeed);

        // apply rotation drag
        zRotationVelocity = zRotationVelocity * (1 - Time.deltaTime * rotationDrag);

        // clamp tomaxRotationSpeed
        zRotationVelocity = Mathf.Clamp(zRotationVelocity, -maxRotationSpeed,maxRotationSpeed);

        // update transform
        transform.position = transform.position + velocity * Time.deltaTime;
        transform.Rotate(0, zRotationVelocity * Time.deltaTime, 0);

    }
}

Thanks for any help!

Figured it out, use this code on the object you want to rotate with your mouse.

using UnityEngine;

public class PlayerMouseControl : MonoBehaviour
{

    public float angularDragDecayFactor;  //Higher Value means less angular drag or rotation slowing
    public float angleOffset; //Offset incase your model rotation is not lining up with the mouse cursor
    public float speedFactor;
    private Vector3 worldMousePosition;
    private float angle;

    void Update()
    {
        Vector3 mousePos = Input.mousePosition;
        mousePos.z = 5f;

        Vector3 objectPos = Camera.main.WorldToScreenPoint(transform.position);
        mousePos.x = mousePos.x - objectPos.x;
        mousePos.y = mousePos.y - objectPos.y;

        angle = Mathf.Atan2(mousePos.x, mousePos.y) * Mathf.Rad2Deg;
    }

    private void FixedUpdate()
    {
        transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, angle + angleOffset, 0), speedFactor * (Time.deltaTime*angularDragDecayFactor));
    }
}

Let me know if there is a more efficient way.