Refactor the method which is the sequence of the similarly looking steps to (or towards) the design patterm(s) I need some help to understand if the code below could be refactored to something less straightforward, less repetitive and more towards any appropriate pattern. 

What I feel uncomfortable with in the code is the flow of repetitive tasks with the same pattern like:

// Get the result from some operation (API call / or any other operation);
// Check if the result is somehow valid;
// If it is not valid, set the response object accordingly and return early;
// If it is valid, continue with the next step with the overall same logic but different details.


Does the code look like being able to get refactored to (or towards) some usefully applicable here design pattern?

Would love to hear any feedback on it.

Here is the code:

/**
 * Check if the given email exists in the SendGrid recipients global list
 * and its custom field 'status' has the value 'subscribed'.
 *
 * @param  string  $email The email to check.
 *
 * @return object  (object)['isfound'=&gt;false, 'issubscribed'=&gt;false];
 */
public function getSubscriberStatus(string $email): object
{
    $result = (object) ['isfound' =&gt; null, 'issubscribed' =&gt; null];

    /**
     * Find the email in the SendGrid global list.
     */
    $endpoint = "contactdb/recipients/search?email=$email";
    $found = $this-&gt;callSendGrid('GET', $endpoint);
    if ($found-&gt;status !== 200) {
        Log::error(sprintf('[SENDGRID] Error while searching the email: %s in the SendGrid list, status: %s, message: %s', $email, $found-&gt;status, $found-&gt;message));
        $result-&gt;isfound = false;
        $result-&gt;issubscribed = false;
        return $result;

        // throw new \Exception("Error while searching the email: $email in the SendGrid list");
    }

    if (!($found-&gt;data-&gt;recipient_count &gt; 0)) {
        $result-&gt;isfound = false;
        $result-&gt;issubscribed = false;
        return $result;
    }

    /**
     * Find the recipient with email exactly matching the required one.
     */
    $recipient = collect($found-&gt;data-&gt;recipients)-&gt;first(function ($item) use ($email) {
        return $item-&gt;email === $email;
    });

    /**
     * No exactly matching emails.
     */
    if (!$recipient) {
        $result-&gt;isfound = false;
        $result-&gt;issubscribed = false;
        return $result;
    }

    $result-&gt;isfound = true;

    /**
     * Get the status field of the recipient's 'custom_fields' array.
     */
    $status = collect($recipient-&gt;custom_fields)-&gt;first(function ($item) {
        return $item-&gt;name === 'status';
    });

    if ($status-&gt;value !== 'subscribed') {
        $result-&gt;issubscribed = false;
        return $result;
    }

    $result-&gt;issubscribed = true;
    return $result;
}
I share your concern regarding the code presented to contain repetitions.  

Design patterns are something to notice and use on an architectural level and do not apply here.  

Suggestion:
• use in-line-comments for one-liners

(I kept several things the way you coded them (and, while not objecting strongly, I'd rather not): one guideline with say meaning code:
Say what you mean, mean what you say. (Scott D. Meyers(?)))
The @return doc comment will need improving, some lines remain overly long:

/**
 * Check if the given email exists in the SendGrid recipients global list
 * and its custom field 'status' has the value 'subscribed'.
 *
 * @param  string  $email The email to check.
 *
 * @return object  (object)['isfound'=&gt;false, 'issubscribed'=&gt;false];
 */
public function getSubscriberStatus(string $email): object
{
    $result = (object) ['isfound' =&gt; false, 'issubscribed' =&gt; false];

    // Find the email in the SendGrid global list.
    $endpoint = "contactdb/recipients/search?email=$email";
    $found = $this-&gt;callSendGrid('GET', $endpoint);
    if ($found-&gt;status !== 200) {
        Log::error(sprintf('[SENDGRID] Error while searching the email: %s in the SendGrid list, status: %s, message: %s', $email, $found-&gt;status, $found-&gt;message));
        return $result;

        // throw new \Exception("Error while searching the email: $email in the SendGrid list");
    }

    if (!($found-&gt;data-&gt;recipient_count &gt; 0)) {
        return $result;
    }

    // Find the recipient with email exactly matching the required one.
    $recipient = collect($found-&gt;data-&gt;recipients)-&gt;first(function ($item) use ($email) {
            return $item-&gt;email === $email;
        });

    // No exactly matching emails.
    if (!$recipient) {
        return $result;
    }

    $result-&gt;isfound = true;

    // Get the status field of the recipient's 'custom_fields' array.
    $status = collect($recipient-&gt;custom_fields)-&gt;first(function ($item) {
            return $item-&gt;name === 'status';
        });

    if ($status-&gt;value === 'subscribed') {
        $result-&gt;issubscribed = true;
    }

    return $result;
}