anyways i solved it after awhile and got the behavior which i wanted
local HitCF = Mouse.Hit
local Origin = Part.Position
local CF = CFrame.new(Origin, HitCF.Position)
local RX, RY, RZ = CF:ToOrientation()
local newRY = 0
local directionVector = Origin - Mouse.Hit.Position
local dotProduct = CFrame.new(Origin).LookVector:Dot(directionVector)
if dotProduct > 0 then
newRY = -180
elseif dotProduct < 0 then
newRY = 0
end
local orientation = Vector3.new(math.deg(RX), newRY,math.deg(RZ))
Part.Orientation = orientation