How to make an object move in the direction it is facing?,How to make an object move in the same direction which he is facing?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement_Script : MonoBehaviour
{

public Rigidbody rb;

public float forward_speed = -200;
public float left_speed = 50;
public float right_speed = 50;
public float backward_speed = 50;
public float jump_height = 20;

public float distToGround = 0f;

bool space_pressed = false;

// Update is called once per frame
void Update()
{
    Debug.Log(Physics.Raycast(transform.position,Vector3.down, distToGround));

    //Main loop
    if (Input.GetKey("a")) {
         rb.AddForce(0, 0, -1 *left_speed);
    }

    if (Input.GetKey("d")) {
        rb.AddForce(0, 0, right_speed);
        }


    if (Input.GetKey("w")) {
        rb.AddForce(forward_speed, 0, 0);
    }
    
    if (Input.GetKey("s")) {
        rb.AddForce(backward_speed, 0, 0);
    }

    if (Input.GetKey("space")) {
        if (Physics.Raycast(transform.position,Vector3.down, distToGround) == true) {
            rb.AddForce(0, jump_height, 0);
        }
    }
}

}

This is my code, how do I make it so that my object rotates and goes in that direction?,using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement_Script : MonoBehaviour
{

public Rigidbody rb;

public float forward_speed = -200;
public float left_speed = 50;
public float right_speed = 50;
public float backward_speed = 50;
public float jump_height = 20;

public float distToGround = 0f;

bool space_pressed = false;

// Update is called once per frame
void Update()
{
    Debug.Log(Physics.Raycast(transform.position,Vector3.down, distToGround));

    //Main loop
    if (Input.GetKey("a")) {
         rb.AddForce(0, 0, -1 *left_speed);
    }

    if (Input.GetKey("d")) {
        rb.AddForce(0, 0, right_speed);
        }


    if (Input.GetKey("w")) {
        rb.AddForce(forward_speed, 0, 0);
    }
    
    if (Input.GetKey("s")) {
        rb.AddForce(backward_speed, 0, 0);
    }

    if (Input.GetKey("space")) {
        if (Physics.Raycast(transform.position,Vector3.down, distToGround) == true) {
            rb.AddForce(0, jump_height, 0);
        }
    }
}

}

This is my code, I want to make it so that my cube rotates and goes in that direction like a car.

@Yeepsta, if y is up (assuming you are working in 3D - it looks like you are. Here is how I would do it:

To turn left or right on the y axis:

       // Where you press your A or D keys, turnDirection needs to be 
       // set to 1 or -1 for clockwise or counter clockwise turn
       // you can just set turnDirection in your if statements, and call this after both
       rb.AddTorque( transform.up *  turnSpeed * turnDirection )

To move forward, assuming z is forward

        // again set moveDirection to 1 for forward and -1 for backward
        // In your W and S if statements and call this after both
        rb.AddForce( transform.forward * moveSpeed * moveDirection )

Put them together to make your logic simpler

        // all your if statments here to set moveDirection & turnDirection
       if (Input.GetKey("a")) { .....
        // fill in the rest of your code
       if (Input.GetKey("s")) {  // for example
              moveDirection = 1
        }
       // all forces applied in one place - easier to read, debug, and understand
       rb.AddTorque( transform.up *  turnSpeed * turnDirection )
       rb.AddForce( transform.forward * moveSpeed * moveDirection )