/**
  * Create a tree of all branches
  *
  * @param array $branches
  * @return Illuminate\Support\Collection
  */
 public function all(array $branches = [])
 {
     $datastores = $this->cobra5->getStores();
     foreach ($datastores as $datastore) {
         $datastore = $this->hydrateRoots($datastore);
     }
     if (in_array('categories', $branches)) {
         foreach ($datastores as $datastore) {
             $datastore = $this->hydrateParents($datastore);
         }
         foreach ($datastores as $datastore) {
             foreach ($datastore->categories() as $category) {
                 $category = $this->hydrateChildren($category);
             }
         }
     }
     if (in_array('documents', $branches)) {
         foreach ($datastores as $datastore) {
             foreach ($datastore->categories() as $category) {
                 $category = $this->hydrateDocuments($category);
             }
         }
     }
     return $datastores;
 }
 /**
  * Create a tree of all branches
  *
  * @param array $selected
  * @param array $branches
  * @return Illuminate\Support\Collection
  */
 public function all(array $selected, array $branches = [])
 {
     $results = $this->cobra5->getStores();
     $datastores = [];
     foreach ($results as $result) {
         if (in_array($result->name, $selected)) {
             $datastores[] = $result;
         }
     }
     foreach ($datastores as $datastore) {
         $datastore = $this->hydrateRoots($datastore);
     }
     foreach ($datastores as $datastore) {
         $datastore = $this->hydrateParents($datastore);
     }
     $categories = new Collection();
     foreach ($datastores as $datastore) {
         foreach ($datastore->categories() as $category) {
             $categories->put($category->id, $category);
         }
     }
     foreach ($categories as $category) {
         $category = $this->hydrateChildren($category);
     }
     if (in_array('documents', $branches)) {
         foreach ($categories as $category) {
             $category = $this->hydrateDocuments($category);
         }
     }
     return $categories;
 }