belongsTo(Country::class); } /* METHODS */ /** * Calculate Tax on a value * * @param float $value * @param Collection $taxes * @return void */ public static function tax_calc(?float $value,Collection $taxes): float { if (! $value) $value = 0; $tax = 0; foreach ($taxes as $o) { // Quick sanity check if (! $o instanceof self) abort(500,'Invalid object for tax calculation'); $tax += round($value*$o->rate,2); } return round($value+$tax,2); } }