@bencarter78 Your test looks alright, but I usually open app/Exceptions/Handler.php and stick throw $e; as the first line of the render() method to get the exception in the console.
Laravel 5.5’s shipping with the ability to disable the exception handler, which will be handy for diagnosing issues like this.
Well that was a frustrating couple of hours! Eventually realised the problem was that the route was inside a route group which had an extra middleware associated with it.