To periodically clean models of obsolete records. With this trait, Laravel will do this automatically, only you need to adjust the frequency of the model:prune command in the Kernel class.
use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\Prunable;class Flight extends Model{ use Prunable; /** * Get the prunable model query. * * @return \Illuminate\Database\Eloquent\Builder */ public function prunable() { return static::where('created_at', '<=', now()->subMonth()); }}
Also, in the pruning method, you can set the actions that must be performed before deleting the model:
protected function pruning(){ // Removing additional resources, // associated with the model. For example, files. Storage::disk('s3')->delete($this->filename);}
Tip given by @PascalBaljet
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses
Laravel Coding with AI Agents: Cursor, Claude Code, Codex
5 lessons
1 h 01 min
How to Build Laravel 12 API From Scratch
28 lessons
1 h 21 min
Laravel 12 For Beginners: Your First Project
15 lessons
1 h 32 min