'; } }; throw new MissingFileUploadsTraitException($component); } it('returns 400 for MissingFileUploadsTraitException instead of 500', function () { Route::get('/_test/missing-file-uploads-trait', function () { throwMissingFileUploadsTraitException(); }); $response = $this->get('/_test/missing-file-uploads-trait'); expect($response->status())->toBe(400); }); it('does not report MissingFileUploadsTraitException to the logs', function () { Log::spy(); Route::get('/_test/missing-file-uploads-trait-log', function () { throwMissingFileUploadsTraitException(); }); $this->get('/_test/missing-file-uploads-trait-log') ->assertStatus(400); Log::shouldNotHaveReceived('error'); Log::shouldNotHaveReceived('critical'); Log::shouldNotHaveReceived('emergency'); });