Code Duplication    Length = 16-23 lines in 2 locations

src/Publishable.php 2 locations

@@ 39-61 (lines=23) @@
36
     *
37
     * @return bool
38
     */
39
    public function publish(array $options = [])
40
    {
41
        // https://laravel-news.com/laravel-model-events-getting-started
42
        // https://gist.github.com/scrubmx/7fc20663ce2b3ac103a2879915b572be
43
        // https://www.google.com/search?q=laravel+register+fire+model+event&oq=laravel+register+fire+model+event
44
45
        // If the "publishing" event returns false we bail out immediately and return false,
46
        // indicating that the save failed. This provides a chance for any
47
        // listeners to cancel save operations if validations fail or whatever.
48
        if ($this->fireModelEvent('publishing') === false) {
49
            return false;
50
        }
51
52
        $this->{$this->getPublishedAtColumn()} = $this->freshTimestamp();
53
54
        $saved = parent::save($options);
55
56
        if ($saved) {
57
            $this->fireModelEvent('published', false);
58
        }
59
60
        return $saved;
61
    }
62
63
    /**
64
     * Toogle model instance state to non-published.
@@ 70-85 (lines=16) @@
67
     *
68
     * @return bool
69
     */
70
    public function unpublish(array $options = [])
71
    {
72
        if ($this->fireModelEvent('unpublishing') === false) {
73
            return false;
74
        }
75
76
        $this->{$this->getPublishedAtColumn()} = null;
77
78
        $saved = parent::save($options);
79
80
        if ($saved) {
81
            $this->fireModelEvent('unpublished', false);
82
        }
83
84
        return $saved;
85
    }
86
87
    /**
88
     * Save instance of this model as a draft.