You can control the label rotation by using the data driven option for label placement. This might work for you: In this example, there is a field called rotate_by and is set to either 90,-90 or 180. The result of this is shown here (with field rotate_by used as the label field:
If you want the rotation to be a fixed value, you don't need a dedicated field - you just need that value e.g. 90. Click on Edit on the menu and type in the value.
If you need to rotate symbols - similar approach -> data driven rotation: