Laravel Akismet
Install this package with composer:
composer require nickurt/laravel-akismet
Copy the config files for the api
php artisan vendor:publish --provider="nickurt\Akismet\ServiceProvider" --tag="config"
The Akismet information can be set with environment values in the .env file (or directly in the config/akismet.php file)
AKISMET_APIKEY=MY_UNIQUE_APIKEY
AKISMET_BLOGURL=https://my-custom-blogurl.dev
You can use a hidden-field akismet in your Form-Request to validate if the request is valid
// FormRequest ...
public function rules()
{
    return [
        'akismet' => [new \nickurt\Akismet\Rules\AkismetRule(
            request()->input('email'), request()->input('name')
        )]
    ];
}
// Manually ...
$validator = validator()->make(['akismet' => 'akismet'], ['akismet' => [new \nickurt\Akismet\Rules\AkismetRule(
    request()->input('email'), request()->input('name')
)]]);The AkismetRule requires a email and name parameter to validate the request.
You can listen to the IsSpam, ReportSpam and  ReportHam events, e.g. if you want to log all the IsSpam-requests in your application
This event will be fired when the request contains spam
nickurt\Akismet\Events\IsSpam
This event will be fired when you succesfully reported spam
nickurt\Akismet\Events\ReportSpam
This event will be fired when you succesfully reported ham
nickurt\Akismet\Events\ReportHam
if( \Akismet::validateKey() ) {
    // valid
} else {
    // invalid
}\Akismet::setCommentAuthor("John Doe")
    ->setCommentAuthorUrl("https://www.google.com")
    ->setCommentContent("It's me, John!")
    ->setCommentType('registration');
    // etc
    
// or
\Akismet::fill([
    'comment_author' => 'John Doe',
    'comment_author_url' => 'https://www.google.com',
    'comment_content' => 'It's me, John!'
]);
// etcif( \Akismet::isSpam() ) {
    // yes, i'm spam!
}if( \Akismet::reportSpam() ) {
    // yes, thanks!
}if( \Akismet::reportHam() ) {
    // yes, thanks!
}composer test