The easiest way I can think of is to make an empty GameObject, that will be the parent of your mesh.
Then, rotate the child (your mesh), so that the part you refer to as "UP", is in-line with the parent's transform.up(positive y-axis).
Once you've done that, you can simply use transform.LookAt(character), but using the parent object's transform.
It depends a bit on how exactly you want the enemy rotated in the end but you could simply use Transform.RotateAround like
transform.LookAt(Player);
transform.RotateAround(transform.position, transform.right, 90);
LookAt by default results in rotation such that transform.forward is pointing at the target, transform.right remains pointing right(ish) and transform.up remains pointing up(ish). So all you have to do is rotating around that local X-axis transform. right exactly 90° so now transform.forward points down instead and transform.up points at the target.
which results in
If you then also want to change the other axis you can still additionally rotate it around the local transform. up axis as well e.g. to flip the forward vector "upwards":
transform.LookAt(Player);
transform.RotateAround(transform.position, transform.right, 90);
transform.RotateAround(transform.position, transform.up, 180);