/**
  * Can the user view tha task?
  * @param User $user
  * @param Task $task
  * @return bool
  */
 public function viewTask(User $user, Task $task)
 {
     if ($task->user_id = $user->id) {
         return true;
     }
     return $task->whereHas('users', function ($q) use($user) {
         $q->where('user_id', $user->id);
     })->count() > 0;
 }
 /**
  * @param Task $task
  * @return array
  */
 public function transform(Task $task)
 {
     return ['id' => (int) $task->id, 'uuid' => $task->uuid, 'name' => $task->name, 'description' => $task->description, 'due_date' => ['unix' => !empty($task->due_date) ? $task->due_date->format('U') : null, 'formatted' => !empty($task->due_date) ? $task->due_date->format('m/d/Y') : null], 'priority' => ['weigth' => $task->priority, 'formatted' => $task->getPriorityText()], 'closed' => (bool) $task->closed, 'created' => ['unix' => $task->created_at->format('U'), 'formatted' => $task->created_at->format('m/d/Y h:i A')], 'updated' => ['unix' => $task->updated_at->format('U'), 'formatted' => $task->updated_at->format('m/d/Y h:i A')], 'links' => ['self' => route('boards.{board}.tasks.show', [$task->board->uuid, $task->uuid])]];
 }
 /**
  * @param $taskId
  */
 public function show(Task $model, $boardId, $taskId)
 {
     $task = $model->with(['user', 'step', 'users'])->ByUuid($taskId)->firstOrFail();
     $this->authorize('viewTask', $task);
     return view('tasks::tasks.show')->with('task', $task);
 }
 /**
  * Register the service provider.
  *
  * @return void
  */
 public function register()
 {
     $this->commands([\Modules\Tasks\Console\CreatePermissions::class, \Modules\Tasks\Console\GenerateTasksEntities::class]);
     Board::observe(new UuidObserver());
     Task::observe(new UuidObserver());
 }