'US' ]; public array $address; public function __construct(array $address) { $this->address = $address; if(strlen($this->address['state']) > 2 ) { $this->address['state'] = $this->address['country'] == 'US' ? array_search($this->address['state'], USStates::$states) : CAProvinces::getAbbreviation($this->address['state']); } $this->attributes = $this->newAttributeBag( Arr::only(Arr::mapWithKeys($this->address, function ($item, $key) { return in_array($key, ['address1','address2','state'])?[ (['address1'=>'address_1','address2'=>'address_2','state'=>'province_code'])[$key] => $item ] :[ $key => $item ]; }), $this->fields) ); } public function render() { return render('gateways.rotessa.components.address', $this->attributes->getAttributes() + $this->defaults ); } }