original_string: public function monthly($month = '*', $day = 1, $hour = 0, $minute = 0)
      {
          if (\is_string($hour)) {
              $parts = explode(':', $hour);
              $hour = $parts[0];
              $minute = $parts[1] ?? '0';
          }
          $c = $this->validateCronSequence($minute, $hour, $day, $month);
  
          return $this->at("{$c['minute']} {$c['hour']} {$c['day']} {$c['month']} *");
      }
code: public function monthly($month = '*', $day = 1, $hour = 0, $minute = 0)
      {
          if (\is_string($hour)) {
              $parts = explode(':', $hour);
              $hour = $parts[0];
              $minute = $parts[1] ?? '0';
          }
          $c = $this->validateCronSequence($minute, $hour, $day, $month);
  
          return $this->at("{$c['minute']} {$c['hour']} {$c['day']} {$c['month']} *");
      }
code_tokens: public function monthly ( $ month = '*' , $ day = 1 , $ hour = 0 , $ minute = 0 ) { if ( \ is_string ( $ hour ) ) { $ parts = explode ( ':' , $ hour ) ; $ hour = $ parts [ 0 ] ; $ minute = $ parts [ 1 ] ?? '0' ; } $ c = $ this -> validateCronSequence ( $ minute , $ hour , $ day , $ month ) ; return $ this -> at ( "{$c['minute']} {$c['hour']} {$c['day']} {$c['month']} *" ) ; }
docstring: Set the execution time to once a month.
  
  @param  int|string  $month
  @param  int|string  $day
  @param  int|string  $hour
  @param  int|string  $minute
  @return self
docstring_tokens: Set the execution time to once a month .