/** * @param PaymentCard $card * @throws \InvalidArgumentException If $card is not valid */ public function __construct(PaymentCard $card) { if ($card->isValid() === false) { throw new \InvalidArgumentException("PaymentCard::isValid() returned false"); } $this->setModel($card); }