title: Laravel 5.5 - Job - Trigger failed() method with "GuzzleHttp\Exception"
body: <p>I'm building a simple Laravel Job that send a GET request with <code>GuzzleHttp\Client</code> to a remote web service. 
  When the <code>GuzzleHttp</code> request return an error, it throw an instance of <code>GuzzleHttp\Exception\ClientException</code> but the <code>failed()</code> method must be an instance of <code>app\Jobs\Exception</code>.
  This is the code:</p>
  
  <pre><code>namespace app\V1\Jobs;
  class setRegionJob implements ShouldQueue
  {
      use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
      // . . .
      public function handle()
      {
          $client = new \GuzzleHttp\Client([
              'base_uri' =&gt; 'http://link_to_api/'),
              'timeout'  =&gt; 2.0,
          ]);
          $res = $client-&gt;request('GET', '?key=param1&amp;key2=param2');
          if ($res-&gt;getStatusCode() == 200) {
              $data = json_decode($res-&gt;getBody(), true)['data'];
          } else {
              $data = null;
          }
      }
  
      public function failed(Exception $exception)
      {
           // do something
      }
  }
  </code></pre>
  
  <p>Then, when the <code>$client-&gt;request('GET', '?key=param1&amp;key2=param2')</code> throw an Exception the ERROR is:</p>
  
  <pre><code>[2017-11-09 14:38:40] local.ERROR: Type error: Argument 1 passed to app\Jobs\setRegionJob::failed() must be an instance of app\Jobs\Exception, instance of GuzzleHttp\Exception\ClientException given.
  </code></pre>
  
  <p>How I can trigger the <code>failed()</code> method?</p>