title: Laravel deferred service provider `provides` not being called
body: <p>I have the following definition:</p>
  
  <pre class="lang-php prettyprint-override"><code>namespace App\Providers;
  
  use Illuminate\Support\ServiceProvider;
  use App\SomeClass;
  
  class SomeProvider extends ServiceProvider
  {
      protected $defer = true;
  
      public function register()
      {
          $this-&gt;app-&gt;bind(SomeClass::class, function ($app)
          {
              return new SomeClass();
          });
      }
  
      public function provides()
      {
          die("This never gets called");
          return [SomeClass::class];
      }
  }
  </code></pre>
  
  <p>And it returns an instance of <code>SomeClass</code> as expected, except that according to the documentation, if <code>$defer</code> is true then the <code>provides()</code> method should be called. No matter what I set <code>$defer</code> to, and no matter if I actually ask for an instance of <code>SomeClass</code> or not, <code>provides()</code> is never called.</p>
  
  <p>The way I'm asking for an instance of the class is as follows:</p>
  
  <pre><code>App::make('SomeClass');
  </code></pre>