code: public static function aDateAfter($other, $message = 'Invalid date', $atLeastMins = 0, $atMaxMins = null)
      {
          /**
           * @param \DateTime|LocalDate|null $value
           *
           * @return bool
           */
          $check = function ($value = null) use ($other, $atLeastMins, $atMaxMins) {
  
              if ($value instanceof \DateTime) {
                  $value = LocalDate::raw($value);
              }
  
              if ($value === null || ! $value instanceof LocalDate) {
                  return false;
              }
  
              $otherDate = $other->getValue();
              if ($otherDate instanceof \DateTime) {
                  $otherDate = LocalDate::raw($otherDate);
              }
  
              if ($otherDate === null || ! $otherDate instanceof LocalDate) {
                  return false;
              }
  
              return $value->isAfter($otherDate->modifyByMinutes($atLeastMins))
                     && ($atMaxMins === null || $value->isBefore($otherDate->modifyByMinutes($atMaxMins)));
          };
  
          return new ResultsIn\OutcomeRule($check, $message);
      }
docs: @param ValueHolder $other
  @param string      $message
  @param int         $atLeastMins
  @param int         $atMaxMins
  
  @return OutcomeRule