How to create script for wheels,using AddTorque?

I have this code so far but it works very weird.

Here is video

using System.Collections.Generic;
using UnityEngine;

public class WheelController : MonoBehaviour
{
    public Rigidbody[] _rigidbody;
    public float torqMulti;

    private void Update()
    {
        A();
        D();
        W();
        S();
    }

    void A()
    {
        if (Input.GetKey(KeyCode.A))
        {
            _rigidbody[0].AddTorque(transform.up * torqMulti);
        }
    }
    void D()
    {
        if (Input.GetKey(KeyCode.D))
        {
            _rigidbody[0].AddTorque(-transform.up * torqMulti);
        }
    }

    void W()
    {
        if (Input.GetKey(KeyCode.W))
        {
            foreach (Rigidbody rb in _rigidbody)
            {
                rb.AddTorque(transform.forward * torqMulti);
            }
        }
    }
    void S()
    {
        if (Input.GetKey(KeyCode.S))
        {
            foreach (Rigidbody rb in _rigidbody)
            {
                rb.AddTorque(-transform.forward * torqMulti);
            }
        }
    }
}

Please try this…

using System.Collections.Generic;
using UnityEngine;

public class WheelController : MonoBehaviour
{
    public List<Rigidbody> _rigidbodies; // Use a List for Rigidbody components.
    public float torqMulti = 10f; // Adjust this value based on your needs.

    private void Update()
    {
        HandleInput();
    }

    void HandleInput()
    {
        // You can use GetKey instead of GetKey for smoother control.
        // Make sure to normalize the input to prevent diagonal movement from being too fast.
        float horizontalInput = Input.GetAxis("Horizontal");
        float verticalInput = Input.GetAxis("Vertical");

        // Apply torque based on input.
        ApplyTorque(horizontalInput, verticalInput);
    }

    void ApplyTorque(float horizontalInput, float verticalInput)
    {
        // Apply torque to all rigidbodies in the list.
        foreach (Rigidbody rb in _rigidbodies)
        {
            if (verticalInput > 0)
            {
                // Apply torque for forward movement.
                rb.AddRelativeTorque(Vector3.forward * torqMulti * verticalInput);
            }
            else if (verticalInput < 0)
            {
                // Apply torque for backward movement.
                rb.AddRelativeTorque(Vector3.back * torqMulti * Mathf.Abs(verticalInput));
            }

            // Apply torque for turning.
            rb.AddRelativeTorque(Vector3.up * torqMulti * horizontalInput);
        }
    }
}