code: public function run($taskName, $callback)
      {
          $args = func_get_args();
          array_shift($args);
          array_shift($args);
  
          $task = $this->start($taskName, $this->repeat());
          for ($i = 0; $i < $task->repeat(); $i++) {
              if (($success = call_user_func_array($callback, $args)) === false)   {
                  $task->failed(true);
                  break;
              }
          }
          $this->end($taskName);
          return $task;
      }
docs: Wraps a callable with start() and end() calls
  
  Additional arguments passed to this method will be passed to
  the callable.
  
  @param  callable $callable
  @param  mixed    ...
  @return mixed