---
title: "Verified reviews — Reviews for Laravel | Roundly"
description: "Flag verified purchases or reviewers on create, with Reviews::verify() or in an update, and filter verified and unverified reviews."
url: https://roundly-consulting.com/open-source/docs/reviews-for-laravel/verified-reviews
language: en
---

[All packages](https://roundly-consulting.com/open-source.md)

[Reviews for Laravel](https://roundly-consulting.com/open-source/docs/reviews-for-laravel.md)

# Verified reviews

A verified boolean marks verified purchases or verified reviewers — the trust signal shoppers look for. Set it on create, flip it with Reviews::verify() / unverify(), or change it in an update:

```php
use RoundlyConsulting\Reviews\DataTransferObjects\UpdateReviewData;
use RoundlyConsulting\Reviews\Models\Review;

// On create — verified() takes an optional bool:
Reviews::for($product)->by($customer)->rating(5)->verified()->create();
Reviews::for($product)->by($customer)->rating(5)->verified($hasPurchased)->create();

// Later, through an update:
Reviews::update($review, new UpdateReviewData(verified: true));

// Or flip it later — idempotent, fires ReviewVerified when the flag changes:
Reviews::verify($review);
Reviews::unverify($review);

// The model helpers call the same manager methods:
$review->markVerified();
$review->markUnverified();

// Filter:
Review::query()->for($product)->verified()->get();
Review::query()->for($product)->unverified()->get();
```

The package stores the flag; deciding who counts as verified — a paid order, a completed booking — is up to your app. Changing it never resets the moderation status. Reviews::verify() and unverify() — and the markVerified() / markUnverified() model helpers, which call them — are idempotent and dispatch ReviewVerified (with bool $verified, the new state) only when the flag actually changes. An update that changes the flag fires ReviewUpdated, then ReviewVerified the same way.

The flag is indexed, exposed as verified in ReviewResource, and available as a factory state (Review::factory()->verified()).

## Show your open-source love

This package is free and MIT-licensed. If it saves you time, a one-off donation or a Patreon membership keeps it maintained, tested and documented.

[More ways to support, including crypto](https://roundly-consulting.com/support-us.md)

By donating, you agree to our [donation terms](https://roundly-consulting.com/donation-terms.md).

[Support our open source work (opens in a new tab)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Join us on Patreon (opens in a new tab)](https://www.patreon.com/cw/roundly)

## Want this built into your product?

We integrate our packages into custom Laravel and AI builds. Tell us what you're working on and we'll reply within 48 hours.

[Get a quote in 48 hours](https://roundly-consulting.com/contact.md) [Browse all packages](https://roundly-consulting.com/open-source/docs/reviews-for-laravel.md)
