/**
  * @param Carbon  $start
  * @param Carbon  $end
  * @param boolean $shared
  *
  * @return CategoryCollection
  */
 public function getCategoryReport(Carbon $start, Carbon $end, $shared)
 {
     $object = new CategoryCollection();
     /**
      * GET CATEGORIES:
      */
     /** @var \FireflyIII\Repositories\Category\CategoryRepositoryInterface $repository */
     $repository = app('FireflyIII\\Repositories\\Category\\CategoryRepositoryInterface');
     $set = $repository->getCategories();
     foreach ($set as $category) {
         $spent = $repository->balanceInPeriod($category, $start, $end, $shared);
         $category->spent = $spent;
         $object->addCategory($category);
         $object->addTotal($spent);
     }
     return $object;
 }