Rotation not working correctly

case KeyCode.W: // make player go foward

            transform.position += Vector3.forward * speed * Time.deltaTime;
            break;

case KeyCode.Q: // make plyer rotate right

            transform.Rotate(0f, -transform.position.y * RotationSpeed * Time.deltaTime, 0f);
            break;

player rotates but direction heading does not so player rotates but still goes in forward direction. How can I get it to rotate right and move forward at same time?

HI,
Try this

function Update()
 {
 if(Input.GetKeyDown (KeyCode.E))
 {
  transform.Translate(Vector3.forward * Time.deltaTime*50);
  
// transform.position += Vector3.forward * 20 * Time.deltaTime;
 }
 if(Input.GetKeyDown (KeyCode.W))
 {
transform.Rotate(0f, -transform.localPosition.y * 80 * Time.deltaTime, 0f);
 }