code: protected function calculate()
      {
          if (!$this->isDirty()) {
              return;
          }
  
          $this->isDirty = false;
  
          $this->calculatedOffset = null;
          $this->calculatedLimit  = null;
  
          // If defined, we override the pagination here.
          if ($this->isLimited()) {
              if ($this->getLimit()) {
                  $this->calculatedLimit = $this->getLimit();
              }
              if ($this->getOffset()) {
                  $this->calculatedOffset = $this->getOffset();
              }
          }
  
          if ($this->getPerPage() > 0) {
              $this->calculatePaginated();
  
              return;
          }
  
          if ($this->calculatedLimit === null) {
              $this->calculatedLimit = 0;
          }
          if ($this->calculatedOffset === null) {
              $this->calculatedOffset = 0;
          }
      }
docs: Calculate the pagination based upon the offset, limit and total amount of items.
  
  @return void