title: How to use tagging in Laravel's service container?
body: <p>I need to know what is the purpose of using service container's tagging and how to use it by example this is what I have tried so far.</p>
  <pre><code>class MemoryReport
  {
  }
  
  class SpeedReport
  {
  }
  
  class ReportAggregator
  {
      public function __construct(MemoryReport $memory, SpeedReport $speed)
      {
      }
  }
    
  App::bind('MemoryReport', function () {
      return new MemoryReport;
  });
  
  App::bind('SpeedReport', function () {
      return new SpeedReport;
  });
  
  App::tag(['MemoryReport', 'SpeedReport'], 'reports');
  
  
  App::bind('ReportAggregator', function ($app) {
      return new ReportAggregator($app-&gt;tagged('reports'));
  });
  
  $reportAggregator = resolve('ReportAggregator');
  
  dd($reportAggregator);
  </code></pre>
  <p>This is the error I get.</p>
  <blockquote>
  <p>Argument 1 passed to ReportAggregator::__construct() must be an
  instance of MemoryReport, instance of
  Illuminate\Container\RewindableGenerator given, called in
  /media/mazzam/9068A9DC68A9C0F81/M.azzam/Learning/laravel/00
  Tutorial/tut/routes/web.php on line 80</p>
  </blockquote>