where('is_approved', 1); }); } public function user() { return $this->belongsTo(User::class); } public function tips() { return $this->hasMany(Tip::class)->orderByDesc('created_at'); } public function getMemeTipsTotalAttribute() { return $this->tips->where('is_deposit', 1)->sum('amount_formatted'); } public function getImageUrlAttribute() { return url($this->image); } public function setImageAttribute($value) { $attribute_name = "image"; $disk = "uploads"; $destination_path = "uploads/memes"; $image = \Image::make($value)->encode($value->extension(), 90); $fix_rotation_issues = $image->orientate(); $filename = md5($value.time()) . '.' . $value->extension(); if ($value->extension() == 'gif') { // Work around to get GIFs to work copy($value->getRealPath(), $destination_path.'/'.$filename); $image->destroy(); } else { \Storage::disk($disk)->put($destination_path.'/'.$filename, $image->stream()); } $this->attributes[$attribute_name] = $destination_path.'/'.$filename; } }