setExpectedException(PermissionDeniedException::class); $gate = m::mock(Gate::class); $request = m::mock(ServerRequestInterface::class)->shouldIgnoreMissing(); $response = m::mock(ResponseInterface::class); $gate->shouldReceive('forUser->allows')->andReturn(false); $middleware = new RequireAdministrateAbility($gate); $middleware->__invoke($request, $response); } }