Move the Cache::set to being inside the if, instead of outside.. Otherwise it'd set the cache everytime it was accessed, totally not what you'd want..