Couldn’t you just compare the x position first?
Player x < 800
— set camera x to lerp( self.x, player.x, 0.01)
Or I guess you could also add an else after that to lerp to the x boundary
Else
— set camera x to lerp(self.x, 800, 0.01)
Or you could utilize the min() expression to keep it in the every tick. May not be as flexible later, and could be harder to read.
Every tick
— camera: set x to lerp(self.x, min(player.x, 800), 0.01)
If you want a left boundary instead, use max() instead. If you have a left and right boundary, use clamp() instead:
Lerp(self.x, clamp(player.x, 50, 800), 0.01)