BasePaymentSetting->canUse() && $this->BasePaymentTypes->canUse($this->code); } public function setTypes(BasePaymentTypes $BasePaymentTypes) { $this->BasePaymentTypes = $BasePaymentTypes; } public function setPayType() { $pay_type = $this->BasePaymentTypes->listPayType->where('code',$this->code)->first()?:new PayType(); $this->BasePaymentSetting->setPayType($pay_type); } protected function setSetting(BasePaymentSetting $BasePaymentSetting) { $this->BasePaymentSetting = $BasePaymentSetting; } public function __call($method , $parameters) { return $this->BasePaymentSetting->$method(...$parameters); } }