public function store($request)
 {
     $cacheTag = ['companies'];
     $validator = $this->validate($request);
     if (!$validator->fails()) {
         Logs::create(['activity' => 'store', 'module' => 'companies']);
         Cache::tags($cacheTag)->flush();
         $_model = Managers::find(config('global.managers.current.id'));
         $_company = $_model->companies()->create($request);
         Configurations::create(['company_id' => $_company->id]);
         Processes::create(['company_id' => $_company->id, 'description' => 'Pedido realizado', 'order' => 1, 'color' => '#444444']);
         $_company->token = config('global.managers.current.id') . uniqid();
         return $_company->update();
     } else {
         return new \Exception($validator->errors()->first());
     }
 }
 public function update($request, $id)
 {
     $cacheTag = ['checkouts'];
     if (isset($request['process_id']) && !empty($request['process_id'])) {
         $_model = Checkouts::find($id);
         if ($_model) {
             Logs::create(['activity' => 'update', 'module' => 'checkouts', 'ref' => $id]);
             Cache::tags($cacheTag)->flush();
             if ($_model->company_id === config('global.companies.current.id')) {
                 $_process = Processes::find($request['process_id']);
                 if ($_process) {
                     if ($_process->lastprocess === 1) {
                         $_user = Users::find($_model->user_id);
                         $_user->confirmed = 1;
                         $_user->save();
                         Cache::tags(['users'])->flush();
                     }
                     return $_model->update(['process_id' => $request['process_id']]);
                 } else {
                     return new \Exception("Não foi possível atualizar, o processo não existe.");
                 }
             } else {
                 return new \Exception("Você não tem permissão para atualizar este registro");
             }
         } else {
             return new \Exception("Houve um erro ao localizar registro (id not found)");
         }
     } else {
         return new \Exception($validator->errors()->first());
     }
 }
 public function destroy($id)
 {
     $cacheTag = ['processes'];
     $_model = Processes::find($id);
     if ($_model) {
         Logs::create(['activity' => 'destroy', 'module' => 'processes', 'ref' => $id]);
         Cache::tags($cacheTag)->flush();
         if ($_model->company_id === config('global.companies.current.id')) {
             return $_model->delete();
         } else {
             return new \Exception("Você não tem permissão para realizar esta ação");
         }
     } else {
         return new \Exception("Houve um erro ao localizar registro (id not found)");
     }
 }