How to rotate transform only on its Y axis?

Hi,

I’m trying to rotate an object only on its Y-axis in order to look at my player all the time, (like a turret motion)

120116-questionunity.png

I have tried this code:

var step = speed * Time.deltaTime;

Vector3 targetDir = target.position - transform.position;
Debug.DrawRay(transform.position, targetDir, Color.red);
Model.rotation = Quaternion.LookRotation(targetDir, Vector3.up);

and this one:

var lookPos = target.position - transform.position;
lookPos.y = 0;
var rotation = Quaternion.LookRotation(lookPos);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);

But my object still rotates on all axis as seen on this image:

120115-questionunity.png

Any idea on how I can achieve this behaviour?

Vector3 initialForward;
void Start(){
initialForward = transform.forward; // change this if its obj looking wrong way
}
void Update(){
Vector3 lookPos = target.position - transform.position;
Vector3 forward = (transform.position + initialForward) - transform.position;
lookPos.y = 0;
transform.eulerAngles = new Vector3(0, Vector3.SignedAngle(lookPos, forward, Vector3.down));
Debug.DrawRay(transform.position, lookPos, Color.red);
Debug.DrawRay(transform.position, forward, Color.green);
}
Just tested.

Edit: added screenshot