Using the SendGrid::send() method with a \SendGrid\Mail\Mail instance results in the following error:
SendGrid\Client::makeRequest(): Argument #3 ($body) must be of type ?array, SendGrid\Mail\Mail given
This occurs even though send() is documented to accept a Mail object. It appears that the send() method no longer serializes the object internally via jsonSerialize() before passing it to Client::post().
Workaround
This works just fine:
$sg = new SendGrid('your-api-key');
$response = $sg->client->mail()->send()->post($mail->jsonSerialize());
Environment:
PHP: 8.4 (dev)
sendgrid/sendgrid: 8.1