code: private function runCalculations()
      {
          if (!empty($this->shopCalculations)) return $this->shopCalculations;
          $cacheKey = $this->calculationsCacheKey;
          if (Config::get('shop.cache_calculations')
              && Cache::has($cacheKey)
          ) {
              $this->shopCalculations = Cache::get($cacheKey);
              return $this->shopCalculations;
          }
          $this->shopCalculations = DB::table($this->table)
              ->select([
                  DB::raw('sum(' . Config::get('shop.item_table') . '.quantity) as itemCount'),
                  DB::raw('sum(' . Config::get('shop.item_table') . '.price * ' . Config::get('shop.item_table') . '.quantity) as totalPrice'),
                  DB::raw('sum(' . Config::get('shop.item_table') . '.tax * ' . Config::get('shop.item_table') . '.quantity) as totalTax'),
                  DB::raw('sum(' . Config::get('shop.item_table') . '.shipping * ' . Config::get('shop.item_table') . '.quantity) as totalShipping')
              ])
              ->join(
                  Config::get('shop.item_table'),
                  Config::get('shop.item_table') . '.' . ($this->table == Config::get('shop.order_table') ? 'order_id' : $this->table . '_id'),
                  '=',
                  $this->table . '.id'
              )
              ->where($this->table . '.id', $this->attributes['id'])
              ->first();
          if (Config::get('shop.cache_calculations')) {
              Cache::put(
                  $cacheKey,
                  $this->shopCalculations,
                  Config::get('shop.cache_calculations_minutes')
              );
          }
          return $this->shopCalculations;
      }
docs: Runs calculations.