public function applyFilterChain($source, $fileSavePath)
    {   
        $loadFrom = $source;
        
        foreach (StorageFilterChain::find()->where(['filter_id' => $this->id])->with(['effect'])->all() as $chain) {
            // apply filter
            $chain->applyFilter($loadFrom, $fileSavePath);
            // override load from path for next iteration (if any).
            $loadFrom = $fileSavePath;
        }
        
        return true;
    }