$this->encodePrimaryKey($cgt->id), 'token' => (string) $cgt->token ?: '', 'gateway_customer_reference' => $cgt->gateway_customer_reference ?: '', 'gateway_type_id' => (string) $cgt->gateway_type_id ?: '', 'company_gateway_id' => (string) $this->encodePrimaryKey($cgt->company_gateway_id) ?: '', 'is_default' => (bool) $cgt->is_default, 'meta' => $this->typeCastMeta($cgt->meta), 'created_at' => (int) $cgt->created_at, 'updated_at' => (int) $cgt->updated_at, 'archived_at' => (int) $cgt->deleted_at, 'is_deleted' => (bool) $cgt->is_deleted, ]; } private function typeCastMeta($meta) { $casted = new stdClass; if (property_exists($meta, 'exp_month')) { $casted->exp_month = (string) $meta->exp_month; } if (property_exists($meta, 'exp_year')) { $casted->exp_year = (string) $meta->exp_year; } if (property_exists($meta, 'brand')) { $casted->brand = (string) $meta->brand; } if (property_exists($meta, 'last4')) { $casted->last4 = (string) $meta->last4; } if (property_exists($meta, 'type')) { $casted->type = (int) $meta->type; } return $casted; } }