*/ final readonly class GetCustomerByEmailQuery implements Query { public function __invoke(QueryInput $input): ?ShopperId { Assert::isInstanceOf($input, GetCustomerByEmailQueryInput::class); /** @var Customer|null $customer */ $customer = Customer::query() ->where('email', $input->email->value) ->first(); return $customer?->getId(); } }