You don’t want to be using the x,y,z and w values of a rotation directly unless you really understand Quaternions. In fact, I’m surprised this compiled. Use Quaternion.Euler() instead:
building = Instantiate(farmingPlot, farmPosition, Quaternion.Euler(Vector3(45, 0, 0)));
This will give an absolute rotation of 45 degrees. If you want it relative like you have it, you can add transform.eulerAngles.y to the value.
I wanted to update this since I came across it if you put the Vector3 call in the Quaternion.Euler call your code will not compile. Just drop the Vector3() portion off and your golden. See documentation: Unity - Scripting API: Quaternion.Euler