My bullets travels only forward, they don't follow the player rotation. What did I do wrong?

The player script is given below:

public class NewPlayer : MonoBehaviour
{
public float movementspeed;
public GameObject Camera;
public GameObject bulletSpawnPoint;
public float waitTime;
public GameObject playerobj;
public GameObject bullet;

// player facing mouse

void Update()
{
    Plane playerplane = new Plane(Vector3.up, transform.position);
    Ray ray = UnityEngine.Camera.main.ScreenPointToRay(Input.mousePosition);
    float hitDist = 0.0f;
    if (playerplane.Raycast(ray, out hitDist))
    {

        Vector3 targetpoint = ray.GetPoint(hitDist);
        Quaternion targetrotation = Quaternion.LookRotation(targetpoint - transform.position);
        targetrotation.x = 0;
        targetrotation.z = 0;
        playerobj.transform.rotation = Quaternion.Slerp(playerobj.transform.rotation, targetrotation, 7f * Time.deltaTime);
    }

    //playermovement
    if (Input.GetKey(KeyCode.W))
    {
        transform.Translate(Vector3.forward * movementspeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.A))
    {
        transform.Translate(Vector3.left * movementspeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.S))
    {
        transform.Translate(Vector3.back * movementspeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.D))
    {
        transform.Translate(Vector3.right * movementspeed * Time.deltaTime);
    }

    //shooting
    if (Input.GetMouseButtonDown(0))
    {
        Shoot();
    }

    
}
public void Shoot()
{
    Instantiate(bullet.transform, bulletSpawnPoint.transform.position, Quaternion.identity);

},THe player script is given below:

public class NewPlayer : MonoBehaviour
{
public float movementspeed;
public GameObject Camera;
public GameObject bulletSpawnPoint;
public float waitTime;
public GameObject playerobj;
public GameObject bullet;

// player facing mouse

void Update()
{
    Plane playerplane = new Plane(Vector3.up, transform.position);
    Ray ray = UnityEngine.Camera.main.ScreenPointToRay(Input.mousePosition);
    float hitDist = 0.0f;
    if (playerplane.Raycast(ray, out hitDist))
    {

        Vector3 targetpoint = ray.GetPoint(hitDist);
        Quaternion targetrotation = Quaternion.LookRotation(targetpoint - transform.position);
        targetrotation.x = 0;
        targetrotation.z = 0;
        playerobj.transform.rotation = Quaternion.Slerp(playerobj.transform.rotation, targetrotation, 7f * Time.deltaTime);
    }

    //playermovement
    if (Input.GetKey(KeyCode.W))
    {
        transform.Translate(Vector3.forward * movementspeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.A))
    {
        transform.Translate(Vector3.left * movementspeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.S))
    {
        transform.Translate(Vector3.back * movementspeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.D))
    {
        transform.Translate(Vector3.right * movementspeed * Time.deltaTime);
    }

    //shooting
    if (Input.GetMouseButtonDown(0))
    {
        Shoot();
    }

    
}
public void Shoot()
{
    Instantiate(bullet.transform, bulletSpawnPoint.transform.position, Quaternion.identity);

}

it’s not working properly yet. Bullet moves all around the plane but moves perpendicular to the player direction.